在大多数使用Express JS的教程中,app.listen函数始终添加在文件末尾。我想了解一下这是否必不可少,因为所有中间件都按顺序运行。
大多数示例显示:
const express = require('express)
const app = express()
app.get('/', (req, res) => {
res.send('Test')
}
app.listen(3000, () => {
console.log('Server running on port 3000')
}
有什么理由不应该这样做吗?
const express = require('express)
const app = express()
app.listen(3000, () => {
console.log('Server running on port 3000')
}
app.get('/', (req, res) => {
res.send('Test')
}
答案 0 :(得分:0)
我想出了答案,以防有人寻找。
app.listen实际上是调用HTTP.createServer
的包装函数。
据我了解,createServer
在事件循环上设置了一个事件侦听器。当操作系统在正在侦听的特定端口(例如端口80)上收到HTTP请求时,请求将由express处理。
由于createServer
是异步操作,因此一旦执行主程序,它将在事件循环中执行。因此,放置此代码的位置无关紧要。最后,在大多数示例中,它只是作为标准而不是技术要求。