2016-02-29 52 views
0

在Visual Studio Node.js的项目,他们有一个名为WWW文件bin目录与此内容:为什么Visual Studio Node.js项目使用shebang/bash脚本来启动服务器?

#!/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中?它与部署或可移植性有关吗?

在此先感谢!

回答

1

节点应用中的约定是我们创建主要的js文件来运行服务器bin/文件夹中的文件www将由node.exe运行。其中一个原因是将您的应用程序逻辑从具有起点的地方分离出来。当然,你可以在app.js上内联添加它,或者在app.js的同一目录下有一个server.js文件来做同样的事情。这取决于你选择进入应用程序的入口点。通过部署,再次取决于您的特定环境。某些服务(如Azure Web应用程序)默认运行server.js(尽管您可以包含一个配置文件来指定您的入口点)。

而且这仍然是一个JavaScript文件,而不是击:

#!/usr/bin/env node 

由可执行节点运行装置从/ usr/bin中/ env的

#!/bin/bash 

在由可执行的bash运行装置/ bin中/ 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”); 
相关问题