请教express 4中app和router的区别
发布于 10个月前 作者 UlricGan 1305 次浏览
var app = express();  
var router = express.Router();

看文档发现router可以做的事好像app都可以做,请教一下两者的区别?app.route()返回的是不是Router的实例?

2 回复

router 就是一个 mini 的 app。router 可以更细的划分 controller

http://lostjs.com/2014/04/24/router-in-express-4/ 有更详细的介绍

var http = require(‘http’); var server = http.createServer(); var app = server;

app = express(); 就是做了上面的事情,另外还做了一些别的事情, 比如app.stack = {}; app.stack.a = function (req, res, next) {…}; app.stack.b = function (req, res, next) {…}; … app.use = function (arg) {… 操作this.stack…} 大致这么个意思.

这也是我特别不喜欢也不用express的原因, 我觉得他的设计者在api的水平并不是很高明。 作者完全采用包装server, 然后在上边通过运行时的差异化继承(你可以google一下这个概念)来扩展server对象。 会存在潜在的node版本升级和express函数名冲突的情况。

回到顶部