关于express sub-app挂载源码部分问题
sub-app在init中lazyrouter时会通过this._router.use(middleware.init(this))设置sub-app的req和res的原型指向sub-app的request和response。代码: setPrototypeOf(req, app.request) setPrototypeOf(res, app.response),
但用app.use(sub-app)进行挂载时会执行
router.use(path, function mounted_app(req, res, next) {
var orig = req.app;
fn.handle(req, res, function (err) {
setPrototypeOf(req, orig.request)
setPrototypeOf(res, orig.response)
next(err);
});
});
这里是不是把sub-app的req和res重新挂在到app的request和response上面了呢?如果是的目的是什么?
1 回复
刚测试完了 sub-app的req指向的prototype是app.request 不是 sub-app.request