0

我在试图弄清楚如何在不使用 Web-Matrix 的情况下在 issexpress/issnode 下启动 nodejs 网站时遇到问题。基本上,我需要通过单击 Web-Matrix 中的开始/停止但在它之外完成相同的操作。

更新

如果一个网站可以由

node.exe sever.js

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

4

2 回答 2

0

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

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

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

于 2012-07-30T21:50:53.407 回答
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

;)

于 2014-07-24T23:19:38.767 回答