如何从命令行在iisexpress / iisnode下启动nodejs web-site?

时间:2012-07-21 15:50:23

标签: webmatrix iis-express iisnode

我在尝试找出如何在不使用Web-Matrix 的issexpress / issnode 下启动nodejs网站时遇到问题。基本上我需要通过点击Web-Matrix中的开始/停止来做同样的事情。

更新

如果只能通过

运行网站
node.exe sever.js

为什么我需要iisexpress或iisnode或web-matrix或其他任何东西?

2 个答案:

答案 0 :(得分:0)

您不需要IISNode或WebMatrix在Windows上进行节点开发。

IISNode提供了从节点到IIS的桥接 - 如果您在Windows上运行节点,这可能是您在生产中要做的事情。在开发时,我们包含在WebMatrix中,以便您在开发时和生产中获得一致的体验。如果您不想使用IISNode,只需使用命令行启动该过程(如您所知)。

WebMatrix只是一个代码编辑器。它使得与Node项目的协作变得更加容易,并为您提供了一系列节点开发的花哨功能。出于上述原因,我们使用节点模板关闭IISNode - 但您当然不必使用它。

答案 1 :(得分:0)

在IISExpress中配置您的站点后(可能通过WebMatrix或VisualStudio),它将被记录在IIS中,默认情况下会记录您的Web项目名称。它现在可以初始化:

start C:/Program Files/IIS Express/iisexpress /site:YourProjectName

因此,您可以在server.js中调用iisexpress工具:

/* 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