node.js 中 app.js、index.js 和 server.js 的约定?

新手上路,请多包涵

在 node.js 中,我似乎遇到了相同的 3 个文件名来描述应用程序的主要入口点:

  • 使用 express-generator 包时,会创建一个 app.js 文件作为生成的应用程序的主入口点。
  • 通过 npm init 创建新的 package.json 文件时,会提示输入主入口点文件。默认为 index.js
  • 在我见过的一些程序中, server.js 也作为主要入口点。

其他时候,它们的用法似乎仍然存在细微差别。例如,此节点应用程序目录结构在不同的上下文中使用 index.jsserver.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 许可协议

阅读 1.2k
1 个回答

即使您可以随心所欲地调用文件,调用入口点 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 文件时,“它就可以工作”

原文由 zumalifeguard 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏