我正在为我的教育阅读示例表达源代码。
初始化一个简单的 express 应用程序如下所示:
const express = require('express')
const app = express()
app.listen(3000, () => {
console.log(`http://localhost:3000`)
})
我想了解app.listen
上面代码中的内容。
源代码app.listen
在express/lib/application.js中定义,如下:
var app = exports = module.exports = {};
// ...
app.listen = function listen() {
var server = http.createServer(this); // <-- why `this` ??
return server.listen.apply(server, arguments);
};
通常,http.createServer()
接受一个函数作为请求处理程序。在这种情况下,this
是传入的。但是this
应该引用app
,它不是一个函数,对吧?
后来我发现app.handle被用作请求处理程序。
引擎盖下发生了什么?
谢谢你的时间!