app.get(path,callback)中的callback只能是函数

app.use(path,callback)中的callback既可以是router对象又可以是函数

当其是router对象时,访问地址为path+router提供的路径

另外,app.use相当于是通用的一个方法,我们可以使用app.use替换app.get。

我们来看一个例子:

app.js

 var express=require('express');
var app=express();
var router = require( './router'); //
app.use( '/test1', function(req,res,next){
res.send( 'hello test1');
}); //
app.get( '/test2', function(req,res,next){
res.send( 'hello test2');
}); //
app.get( '/test3',router);

//
app.use( '/test4',router); app.listen(3000);

router.js

 var express = require('express');
var router = express.Router(); router.get('/', function (req, res, next) {
res.send('hello router');
});
module.exports = router;

当我们访问/test3时提示如下:                            /test4可以正常访问:

        

在来看看如何使用app.use替换app.get

app.js

 var express = require('express');
var app = express();
var router = express.Router(); // app.get('/hello', function (req, res, next) {
// res.send('hello world');
// }); 9 router.get('/', function (req, res, next) {
10 res.send('hello world!');
11 });
router.get('/test', function (req, res, next) {
res.send('hello test!');
});
//此时可以访问两个地址,即localhost:3000/hello和localhost:3000/hello/test
//由此可知,上面的app.get可以由该app.use替换
//当有多条路径时可以使用路由
app.use('/hello',router); app.listen(3000);

如上述代码所示,中间件可以访问两个地址(取决于路由的数量),其中地址localhost:3000/hello功能与上述注释块相同。

因此,当有多条路径存在时,可以使用路由。

express中app.get和app.use的解析的更多相关文章

  1. node.js之express中app.use

    express中app.use 用法: app.use([path,] function [, function…]) 一.app.use() 在express中是怎么工作的 app.use在expr ...

  2. Express中app.use()用法 详解

    app.use(path,callback)中的callback既可以是router对象又可以是函数 app.get(path,callback)中的callback只能是函数 当一个路由有好多个子路 ...

  3. express中app和router的区别

      var app = express(); var router = express.Router(); 以上二者的区别是什么,什么时候用哪个最合适? 区别看下面的例子: app.js var ex ...

  4. express框架中router组件的app.use和app.get

    首先看例子: var express = require('express'); var router = express.Router(); var index = require('./route ...

  5. C#项目实例中读取并修改App.config文件

    C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...

  6. NodeJS - Express 4.0下使用app.dynamicHelpers错误

    在NodeJS - Express 4.0下使用app.dynamicHelpers发生错误: app.dynamicHelpers({ ^ TypeError: Object function (r ...

  7. node express新项目默认主文件app.js

    var express = require('express'); var path = require('path'); var favicon = require('serve-favicon') ...

  8. express 笔记 app.helpers 和 app.locals

    app.helpers 和app.dynamicHelpers 是express2.X使用的 分别为静态/动态 视图助手通过其注册函数, 例如 app.helpers({ <span style ...

  9. H5页面中尝试调起APP

    安卓版本5.0以上 IOS版本10.0以上 采用事件触发的方式处理唤醒APP 市面上常见的功能 这种功能现如今应该非常普遍了,淘宝H5,知乎H5等等... 点击后会调起APP或者打开下载页面或者直接进 ...

随机推荐

  1. ComponentOne使用技巧——从Winform穿越到WPF

    概述 WPF 和 Winform 是两个单独的平台,但二者又都是基于 .NET 4.0 以上版本开发的,所以很多.NET开发人员就开始研究如何在WPF中使用Winform.微软已经架设了两个开发平台的 ...

  2. hihoCoder 1339 Dice Possibility(DP)

    http://hihocoder.com/problemset/problem/1339 题意: 求一个骰子扔n次后最后点数相加为m的概率. 思路: f[i][j]表示扔到第i次时总值为j的概率. # ...

  3. HTML学习笔记CSS

    类选择器和ID选择器的区别 1id只能用一回,类可以循环使用 2可以使用类选择器词列表方法为一个元素同时设置多个样式.我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以 ...

  4. Spring中JdbcTemplate使用RowMapper

    package com.cxl.demo.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util. ...

  5. sklearn dataset 模块学习

    sklearn.datasets官网:http://scikit-learn.org/stable/datasets/ sklearn.datasets 模块主要提供一些导入.在线下载及本地生成数据集 ...

  6. 贪心 —— 今年暑假不AC

    贪心基本题, 有助于理解贪心算法的思想 #include <cstdio> #include <algorithm> using namespace std; struct P ...

  7. 学习笔记30—Windows那些事

    1.win10编程窗口:powerShell 2.Win7设置工具栏折叠:我们只需要在底部任务栏空白位置点击鼠标右键,然后选择“属性”,在弹出额属性对话框中,将“任务栏按钮”后面的“始终合并.隐藏标签 ...

  8. MySQL学习(十三)

    编码问题 乱码是如何形成的 1 解码时与实际编码不一致 可修复 2 传输过程中,编码不一致,导致字节丢失,不可修复,如把utf8转为GB2312 连接器的特性:连接客户端和服务器,客户端的字符先发给连 ...

  9. MySQL学习(七)

    学习子查询 1 查出本网站最新的good_id最大的一条商品(要求取出商品名) mysql> select goos_id,goods_name from goods -> order b ...

  10. jq 折面板+tab切换(自己封装的插件哦!!)

    如上图所示的一个折面板效果+tab切换:最重要的js代码如下: 对于布局简单介绍下: hot_wrap_li 这个是带箭头的横条: Arrow 这个是箭头的div:hot_wrap_li_wrap 这 ...