在./lib/express.js
中
function createApplication() {
var app = function(req, res, next) {
app.handle(req, res, next);
};
mixin(app, proto);
mixin(app, EventEmitter.prototype);
app.request = { __proto__: req, app: app };
app.response = { __proto__: res, app: app };
app.init();
return app;
}
我知道它将创建一个快速应用程序并将其返回给我们,我们收到的应用程序是一个将在HTTP“请求”事件发生时触发的函数,但是这两行代码的目的是什么
app.request = { __proto__: req, app: app };
app.response = { __proto__: res, app: app };
?
它的基本捷径是:
app.request = new req();
app.request.app = app;
该__proto__
属性设置对象prototype
。Aprototype
定义对象继承哪些方法。例如,Array.prototype.slice
将在提供[1,2,3].slice(1)
。关于原型的特殊之处在于,原型的每个实例共享相同的方法。因此,不会重新创建原型方法,从而节省了性能。
是,并app
仅仅是一个参考,因此对方法request
对象可以例如访问app.settings
通过this.app.settings
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句