我有一個問題,試圖找出如何在issexpress/issnode 下啓動nodejs網站而不使用Web-Matrix。基本上我需要通過點擊Web-Matrix中的開始/停止來完成同樣的事情,但在它之外。如何從命令行啓動iisexpress/iisnode下的nodejs web站點?
UPDATE
如果一個網站可以僅通過
node.exe sever.js
爲什麼我需要iisexpress或iisnode或網絡矩陣或其他任何運行?
我有一個問題,試圖找出如何在issexpress/issnode 下啓動nodejs網站而不使用Web-Matrix。基本上我需要通過點擊Web-Matrix中的開始/停止來完成同樣的事情,但在它之外。如何從命令行啓動iisexpress/iisnode下的nodejs web站點?
UPDATE
如果一個網站可以僅通過
node.exe sever.js
爲什麼我需要iisexpress或iisnode或網絡矩陣或其他任何運行?
您不需要IISNode或WebMatrix來在Windows上進行節點開發。
IISNode提供了從節點到IIS的橋樑 - 如果您在Windows上運行節點,這可能是您在生產中要做的事情。在開發時,我們將包含在WebMatrix中,以便在開發時和生產中獲得一致的體驗。如果你不想使用IISNode,你可以使用命令行來啓動進程(正如你想象的那樣)。
WebMatrix只是一個代碼編輯器。它使節點項目的工作變得更加簡單,併爲節點開發提供了一堆花招和哨音。出於上述原因,我們使用節點模板來降低IISNode - 但您當然不必使用它。
一旦您在IISExpress中配置了您的站點(可能通過WebMatrix或VisualStudio),它將被記錄在IIS中,默認情況下使用您的web項目的名稱。它現在可以這樣初始化:
start C:/Program Files/IIS Express/iisexpress /site:YourProjectName
所以,你可以調用iisexpress工具內server.js:
/* in your server.js */
var fs = require("fs");
var exec = require("child_process").exec;
var IIS_PATH = "C:/Program Files/IIS Express/";
var IIS_PATH_64 = "C:/Program Files (x86)/IIS Express/";
var IIS_COMMAND = "iisexpress";
var SITE_NAME = process.argv.slice(2)[0] || "MyDefaultWebProject";
var IIS_PARAM = " /site:" + SITE_NAME;
if(!fs.existsSync(IIS_PATH))
IIS_PATH = IIS_PATH_64;
exec("start " + IIS_COMMAND + IIS_PARAM, {cwd: IIS_PATH });
和運行這樣的:
node server.js MyWebProject
; )
我很抱歉改變主題,但你說我們指的是WebMatrix,所以我相信你有點接近它。在WebMatrix中爲Knockout.js進行開發是非常煩人的事情,即WebMatrix重新格式化腳本標記的內容,儘管它的類型不是text/javascript(在我的情況下是text/html)。我不需要重新格式化,我該如何禁用此功能? – 2012-07-30 23:07:53
那麼我會說,讓用戶安裝不必要的東西,如國際空間站表達不會有助於輕鬆學習如何在node.js中編程。因爲它不提供直接的好處,也不能解釋爲什麼需要IIS。通過提及「一致的體驗」,您是否暗示IIS添加到node.js中的某些東西在編寫node.js for Windows時需要考慮? – 2012-07-30 23:21:02
謝謝你的答案btw! – 2012-07-30 23:22:08