在 node.js 中,我似乎遇到了相同的 3 个文件名来描述应用程序的主要入口点:
- 使用
express-generator
包时,会创建一个app.js
文件作为生成的应用程序的主入口点。 - 通过
npm init
创建新的package.json
文件时,会提示输入主入口点文件。默认为index.js
。 - 在我见过的一些程序中,
server.js
也作为主要入口点。
其他时候,它们的用法似乎仍然存在细微差别。例如,此节点应用程序目录结构在不同的上下文中使用 index.js
和 server.js
:
app
|- modules
| |- moduleA
| | |- controllers
| | | |- controllerA.js
| | | +- controllerB.js
| | |- services
| | | +- someService.js
| | +- index.js <--------------
| +- index.js <-------------------
|- middleware.js
+- index.js <------------------------
config
+- index.js <------------------------
web
|- css
|- js
server.js <----------------------------
这三个名称之间有什么区别(如果有的话)?
原文由 youngrrrr 发布,翻译遵循 CC BY-SA 4.0 许可协议
即使您可以随心所欲地调用文件,调用入口点 index.js 或 server.js 也有一个优势
为什么使用 index.js: 当您发出
npm init
时,它会将模块的主要入口点设置为 index.js。有些人不改变它,所以他们最终将他们的主要入口点命名为 index.js。这意味着少了一件事情要做。为什么使用 server.js: 如果您的节点包不会被另一个包使用,而是一个独立的应用程序,那么如果您调用主入口点 server.js,那么您可以发出
npm start
并启动您的应用程序。npm start
默认情况下将运行您的 server.js 文件。要更改此行为,请在 package.json 中提供start
脚本。如果start
脚本存在,npm start
将运行该脚本。app.js 只是一个约定——它的唯一优点是某些 IDE,例如 Visual Studio Code 将默认将 app.js 作为您调试的程序的入口点。这样,当使用最常见的框架 Express 创建一个 app.js 文件时,“它就可以工作”