为什么Visual Studio Node.js项目使用shebang/bash脚本来启动服务器

Why does the Visual Studio Node.js projects use a shebang/bash script to start server?

本文关键字:bash 脚本 本来 服务器 启动 shebang Studio Visual Node js 项目      更新时间:2023-09-26

在Visual Studio节点中.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 脚本吗?为什么要采用这种方法,而不是只将其放在应用中.js?它与部署或可移植性有关吗?

提前感谢!

节点应用程序中的一个约定是我们创建主js文件以在名为www的文件中bin/文件夹中运行服务器,该文件将由node.exe运行。一个原因是将应用逻辑与具有起点的位置分开。当然,您可以在app.js中添加它,或者实际上在app.js的同一目录中有一个server.js文件来做同样的事情。由您来选择应用程序的入口点。使用部署时,同样取决于您的特定环境。默认情况下,某些服务(如 Azure Web APP)运行服务器.js当然可以包含一个配置文件来指定入口点)。

此外,这仍然是一个javascript文件,而不是bash:

#!/usr/bin/env node

表示由/usr/bin/env 的可执行节点运行

#!/bin/bash

表示由/bin/bash 处的可执行 bash 运行

两者在语法上都不同。如果变量 foo 在

砰脚本:

if [ $((foo%2)) -eq 0 ];
then
    echo "even";
else
    echo "odd";
fi

Javascript:

if(foo%2==0)
    console.log(“even”);
else
    console.log(“odd”);