Express中app和router路由的区别

1.app

app对象通常表示Express应用程序

var express = require('express');
var app = express();

具体的使用我应该不用多说了,不知道的同学可以看我以前的文档或者看官网http://www.expressjs.com.cn/4x/api.html#express

2.Router

目的 :
router目的是中间件和路由的分离的实例。
可以将其视为“迷你应用程序”,只能执行中间件和路由功能。每个Express应用程序都有一个内置的应用程序路由器。

顶级express对象具有Router()创建新router对象的功能。

var router = express.Router([options]);

可选options参数指定路由器的行为。

属性描述默认
caseSensitive启用区分大小写。默认情况下禁用,将“/ Foo”和“/ foo”视为相同。
mergeParams保留req.params父路由器的值。如果父项和子项具有冲突的参数名称,则子项的值优先。false
strict启用严格路由。默认情况下禁用,“/ foo”和“/ foo /”由路由器处理相同。

其实我们可以将router视为一个路由分支,因此router是有中间件和HTTP方法路由(如get,put,post,等),router就像一个应用程序。

最后我们通过app去做统一的调用管理,以实现中间件和路由的分离。
main.js

var express = require('express'),
    a    = require('./routes/a'),
    b    = require('./routes/b');

var app = express();

app.use('/a',  a);
app.use('/b',  b);

app.listen(3000);

a.js

var express = require('express');

var router = express.Router();

router.get('/', function(req, res) {
    res.send('this is aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
});

module.exports = router;

b.js

var express = require('express');

var router = express.Router();

router.get('/', function(req, res) {
    res.send('this is bbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
});

module.exports = router;

main.js中引入a.jsb.js,这样一样可以对/a/b路径下的router进行统一的配置,可以便于管理,而不会相互影响

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值