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

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

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

其他时候,它们的使用似乎也有细微的差别。 例如,这个节点app目录结构在不同的上下文中使用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 <---------------------------- 

这三个名字之间有什么区别?

在我工作的地方,我们并没有真正解决格式问题,所以我们有一些使用index.js的应用程序,一些使用server.js。 另外,在一些我们有一个config.js文件在根级别,其他人在一个configuration文件夹(所以需要(config / config.js)。我们甚至有一个server.js在服务器文件夹。

当我们想要自动化我们的部署过程时,麻烦来了。 当我们必须对每个服务进行一些小修改时,它就像是技术债务。

这就是说,select一个对你有意义的格式,并坚持下去。

事实上,所有这些都只是名字,你必须在你自己的工作中保持一致,正如@Oka在之前的回答中指出的一样。

这里唯一有效的一点是节点的模块化特性可能在你的决定中扮演着重要的angular色,正如在NodeJS文档的模块文件夹部分指出的那样,有三种方法可以将文件夹传递给require()作为参数,第二种方法是从文件夹中自动加载index.js文件 ,这是很多NPM软件包的构build方式,因为它是根据自动加载NodeJS特性简单和标准的。 如果你正在开发一个NPM包,这似乎是最好的select。

最后,正如其他人所指出的那样,你可以select其中的任何一个,甚至是另一个,但坚持你的决定。 我的决定是总是使用index.js基于上面提到的事实。