在 Visual Studio Node.js 项目中,它们有一个 bin 目录,其中包含一个名为 www 的文件,其内容如下:
#!/usr/bin/env node
var app = require('../app');
app.set('port', process.env.PORT || 3300);
var server = app.listen(app.get('port'), function() {
console.log('server up and running on port ' + app.get('port'));
});
这个 bash 脚本的正确名称是吗?为什么要采用这种方法而不是仅仅将其放在 app.js 中?它与部署或可移植性有关吗?
提前致谢!
最佳答案
Node 应用程序中的约定是,我们在 bin/
文件夹中名为 www
的文件中创建主 js 文件来运行服务器,该文件将由 node.exe
。原因之一是将应用程序逻辑与起点分开。当然,您可以将其内联添加到 app.js
中,或者实际上在 app.js
的同一目录下有一个 server.js
文件来执行此操作一样的东西。您可以选择应用程序的入口点。对于部署,再次取决于您的具体环境。某些服务(例如 Azure Web APP)默认运行 server.js(当然您可以包含一个配置文件来指定您的入口点)。
此外,这仍然是一个 javascript 文件,而不是 bash:
#!/usr/bin/env node
表示由/usr/bin/env 中的可执行 Node 运行
#!/bin/bash
表示由位于/bin/bash 的可执行 bash 运行
两者的语法不同。如果变量 foo 为偶数则打印的示例代码
Bash 脚本:
if [ $((foo%2)) -eq 0 ];
then
echo "even";
else
echo "odd";
fi
Javascript:
if(foo%2==0)
console.log(“even”);
else
console.log(“odd”);
关于javascript - 为什么 Visual Studio Node.js 项目使用 shebang/bash 脚本来启动服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35704292/