今天本来很突发奇想的查有没有在 node 上面做游戏的库,结果后来就走神到查如何用 node 勾搭 IIS 去了。可我没想到还真有人把它们给撮合了起来 —— http://github.com/tjanczuk/iisnode。iisnode。
看了些介绍,下面是一个很简单的安装过程:
- 首先,从官网下 node.exe,放进 C:\node\ 目录。(个人尝试:你也可以用 mklink 做个链接,放别的地方)
- 设置好 NODE_PATH 变量
- 确保 IIS 为 7.0,并且安装了 URL 重写
- 下载 iisnode,放进一个文件夹(我是放在 C:\inetpub\iisnode)。确保 Users 组可以读写此文件夹
- 以管理员权限运行一个 cmd,cd 进刚才那里,运行 install.bat。完成。打开 http://localhost/node 看看效果吧。
现在你应该就可以直接在 IIS 里面添加处理程序映射(Web.config: <handlers>)了。(方法:把某个 .js 文件关联到 iisnode 模块。)iisnode 的官方例子还是比较完备的,从 helloworld 到使用 express 的小站点都有。各位可以自行围观。
下面附上官网里 express 小站的 web.config,很简单不是吗?
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="hello.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="hello">
<match url="hello/*" />
<action type="Rewrite" url="hello.js" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
小站本身的源码也很简单,只是把原来监听的 80 端口改成
process.env.PORT
var express = require(‘express’);
var app = express.createServer();
app.get('/node/express/hello/foo’, function (req, res) {
res.send('Hello from foo! [express sample]');
});
app.get('/node/express/hello/bar’, function (req, res) {
res.send('Hello from bar! [express sample]');
});
app.listen(process.env.PORT);
4 回复
Scott Hanselman也给了个在Windows和IIS上跑node.js的解决方案http://www.hanselman.com/blog/WebMatrixAndNodejsTheEasiestWayToGetStartedWithNodeOnWindows.aspx