在 Express JS 中 app.listen 需要在文件末尾吗?

Kan*_*per 4 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')
}

Run Code Online (Sandbox Code Playgroud)

有什么理由不应该这样做:

const express = require('express)
const app = express()

app.listen(3000, () => {
  console.log('Server running on port 3000')
}

app.get('/', (req, res) => {
  res.send('Test')
}
Run Code Online (Sandbox Code Playgroud)

Kan*_*per 6

我想出了这个答案,以防有人去寻找它。

app.listen 实际上是一个调用HTTP.createServer.

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

由于createServer是异步操作,一旦主程序执行,它就会在事件循环中执行。因此,这段代码放在哪里并不重要。在大多数示例中,它最后是作为标准而不是技术要求。