【问题标题】:Benefits of using bin files over .js in express-generator在 express-generator 中使用 bin 文件而不是 .js 的好处
【发布时间】:2017-08-27 10:10:28
【问题描述】:

如果想在 Node.js 中使用 express 启动一个项目。有人会使用express-generator。创建新项目后,您的文件树将如下所示

.
├── app.js
├── bin
│   └── www
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── users.js
└── views
    ├── error.pug
    ├── index.pug
    └── layout.pug

对我来说突出的一件事是,要运行应用程序,您需要执行 node bin/www 或预定义的快捷方式 npm run。我的问题是为什么要按原样使用www,而不是添加.js 扩展名并从文件顶部删除#!/usr/bin/env node?这样做有什么好处吗?还是个人喜好?

【问题讨论】:

  • bin\ 目录作为一个位置,您可以在其中定义各种启动脚本,www 是其外观的示例,最终您可以拥有启动脚本,如测试、停止或重新启动等. 有了这个结构,你就可以在不接触 app.js 的情况下拥有不同的配置。 stackoverflow.com/questions/23169941/…
  • @RatanKumar 感谢您的评论。我明白了,我的问题是为什么是www 而不是www.js,这样做是否有好处?

标签: javascript node.js express express-generator


【解决方案1】:

我们来看bin/www文件的第一行:

#!/usr/bin/env node

shebang 告诉 *nix 操作系统如果您尝试将其作为程序运行,如何解释该文件。

所以这个文件可以作为程序启动。并且在 Linux 中传统的可执行文件没有扩展名。

【讨论】:

  • 谢谢你的回答,我明白这一行告诉计算机如何执行这段代码,我的问题是你为什么要这样做而不是在上面加上.js扩展名。
  • @AntK : ...Linux traditionally executable files do not have an extension...
  • 我知道了,谢谢。我只是想知道为什么这比拥有"start": "node bin/www.js" 更可取,因为你的www.js 也可以被检查、测试以及你可以对应用程序中的 js 文件执行的其他操作。
  • @AntK 我认为主要的好处是您可以仅从终端或 cron 等启动服务:/var/www/projects/express-app/bin/www
  • 但也没有什么能阻止你输入node /var/www/projects/express-app/bin/www.js,对我来说这似乎很不方便,但我可能错过了一些东西
猜你喜欢
  • 2014-08-27
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2011-10-29
相关资源
最近更新 更多