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.js
和b.js
,这样一样可以对/a
和/b
路径下的router
进行统一的配置,可以便于管理,而不会相互影响