为什么使用 bin/www 而不是 index.js?
Why use bin/www and not index.js?
express-generator
工具创建一个名为 bin/www
的文件并将其用作应用程序的主要入口点。我相信我也看到其他几个模块也这样做,但绝大多数只是使用 index.js
.
这背后的原理是什么?我当然理解您为什么要将服务器和设置程序的代码拆分到单独的模块中,但为什么 bin/www
而不是 index.js
?为什么将主入口点嵌套到程序 两层 层比它 调用 的东西更深? 并且删除文件扩展名,使其描述性更差?
这背后是否有一个聪明的、不明显的原因?我是否也应该将它用于我的节点模块?
谢谢!
[编辑]:
所有好的答案,谢谢大家!我接受了指出这是包含可执行文件的包的标准行为的观点。这是我在这方面读到的更多资料:
您习惯于 运行宁 npm run
,但不习惯系统管理员。他会在bin
目录中寻找可执行文件(属性x
)。
入口点index.js
用于节点模块。在控制台上向 运行 提供命令的所有包都包含 bin
目录。
该扩展程序已被删除,因为它不是脚本,而是程序。而且这些没有扩展名。
express-generator 为 express 应用程序创建一个基本结构。按照惯例,应用程序的入口点是 index.js 或 app.js。事实上,express-generator 在应用程序的根目录创建了一个 app.js,初始设置为 express.
同样按照惯例,bin/ 目录用于存放二进制文件,通过扩展名存放可以直接启动的脚本(注意 www 文件第一行的 shebang)。这在 Linux 上很常见,二进制文件没有扩展名,这可以解释为什么选择为这个文件保留这个习惯。
www,按照惯例,用于命名 Web 应用程序(如 Apache 服务器中的 /var/www/html)
无论如何,正如文档所说,
The app structure created by the generator is just one of many ways to
structure Express apps. Feel free to use this structure or modify it
to best suit your needs.
另请参阅 this answer,他谈到了版本 3 和 4 之间 express 的核心结构,并删除了外部模块。
express-generator
工具创建一个名为 bin/www
的文件并将其用作应用程序的主要入口点。我相信我也看到其他几个模块也这样做,但绝大多数只是使用 index.js
.
这背后的原理是什么?我当然理解您为什么要将服务器和设置程序的代码拆分到单独的模块中,但为什么 bin/www
而不是 index.js
?为什么将主入口点嵌套到程序 两层 层比它 调用 的东西更深? 并且删除文件扩展名,使其描述性更差?
这背后是否有一个聪明的、不明显的原因?我是否也应该将它用于我的节点模块?
谢谢!
[编辑]:
所有好的答案,谢谢大家!我接受了指出这是包含可执行文件的包的标准行为的观点。这是我在这方面读到的更多资料:
您习惯于 运行宁 npm run
,但不习惯系统管理员。他会在bin
目录中寻找可执行文件(属性x
)。
入口点index.js
用于节点模块。在控制台上向 运行 提供命令的所有包都包含 bin
目录。
该扩展程序已被删除,因为它不是脚本,而是程序。而且这些没有扩展名。
express-generator 为 express 应用程序创建一个基本结构。按照惯例,应用程序的入口点是 index.js 或 app.js。事实上,express-generator 在应用程序的根目录创建了一个 app.js,初始设置为 express.
同样按照惯例,bin/ 目录用于存放二进制文件,通过扩展名存放可以直接启动的脚本(注意 www 文件第一行的 shebang)。这在 Linux 上很常见,二进制文件没有扩展名,这可以解释为什么选择为这个文件保留这个习惯。
www,按照惯例,用于命名 Web 应用程序(如 Apache 服务器中的 /var/www/html)
无论如何,正如文档所说,
The app structure created by the generator is just one of many ways to structure Express apps. Feel free to use this structure or modify it to best suit your needs.
另请参阅 this answer,他谈到了版本 3 和 4 之间 express 的核心结构,并删除了外部模块。