在Express JS中,app.listen是否需要位于文件末尾?

时间:2019-04-27 23:59:51

标签: node.js express

在大多数使用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')
}

1 个答案:

答案 0 :(得分:0)

我想出了答案,以防有人寻找。

app.listen实际上是调用HTTP.createServer的包装函数。

据我了解,createServer在事件循环上设置了一个事件侦听器。当操作系统在正在侦听的特定端口(例如端口80)上收到HTTP请求时,请求将由express处理。

由于createServer是异步操作,因此一旦执行主程序,它将在事件循环中执行。因此,放置此代码的位置无关紧要。最后,在大多数示例中,它只是作为标准而不是技术要求。