2016-02-29 28 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」); 
相關問題