我在试图弄清楚如何在不使用 Web-Matrix 的情况下在 issexpress/issnode 下启动 nodejs 网站时遇到问题。基本上,我需要通过单击 Web-Matrix 中的开始/停止但在它之外完成相同的操作。
更新
如果一个网站可以由
node.exe sever.js
为什么我需要 iisexpress 或 iisnode 或 web-matrix 或其他任何东西?
我在试图弄清楚如何在不使用 Web-Matrix 的情况下在 issexpress/issnode 下启动 nodejs 网站时遇到问题。基本上,我需要通过单击 Web-Matrix 中的开始/停止但在它之外完成相同的操作。
更新
如果一个网站可以由
node.exe sever.js
为什么我需要 iisexpress 或 iisnode 或 web-matrix 或其他任何东西?
您不需要 IISNode 或 WebMatrix 在 windows 上进行节点开发。
IISNode 提供了从节点到 IIS 的桥梁——如果您在 Windows 上运行节点,这可能是您在生产中要做的事情。在开发时,我们包含在 WebMatrix 中,以便您在开发时和生产中获得一致的体验。如果您不想使用 IISNode,则可以使用命令行启动该过程(如您所想)。
WebMatrix 只是一个代码编辑器。它使 Node 项目的工作变得更容易,并为您提供了大量用于节点开发的花里胡哨。出于上述原因,我们使用节点模板关闭 IISNode - 但您当然不必使用它。
一旦您在 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
;)