var app = express();
var router = express.Router();
看文档发现router可以做的事好像app都可以做,请教一下两者的区别?app.route()
返回的是不是Router的实例?
2 回复
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函数名冲突的情况。