信息:我是node.JS的新手!
我编写了一个可以侦听端口XXXX上的http请求的示例服务器。当我从命令行(Windows)运行此服务器时,它似乎运行良好。它响应于在浏览器中打开时对localhost:XXXX的请求。
问题:这是怎么回事?要使节点服务器运行,是否应始终打开CMD提示以使服务器侦听请求? 我不能用IISNode“做点什么”吗?
据我所知,如果我向一个JS文件发出请求,这个文件在IISNode中被记为Node.JS文件并且NODE应该处理它;然后我会让Node处理我的请求。 但是,这假设IIS是我的Web服务器,Node可以处理特定的请求。
我希望我在这里有意义! :)
答案 0 :(得分:23)
在Windows上,您有两种托管node.js应用程序的选项:
答案 1 :(得分:21)
我用适当的方法解决了它。是的,它是IISNode ..但是没有任何评论似乎回答如何为同一个IIS(也提供PHP,ASPX等)托管的不同应用程序“运行”app.js
第1步。 编辑节点应用程序的入口点(通常)app.js以获取新的URL结构。
Express应用程序假定它拥有整个URL空间并从root用户本身启动URL,如下所示:
将app.js编辑为如下所示(但是将您的应用程序的目录名称改为“aaspass”!!):
现在将web.config文件放在应用程序的根目录下,如下所示(您可以使用此模板:webconfig)。
再次编辑文件并将名称“aaspass”更改为应用程序的目录名称。
多数民众赞成!您可以根据需要为多个应用程序执行此操作,并将它们托管在SAME服务器上。
答案 2 :(得分:7)
对我有用的是什么:
在Node.js app /文件夹中添加web.config文件。以下是web.config文件的内容:
在处理程序中,我只需要指向app.js(应用程序的典型入口点)。 我没有更改任何路线(无需附加任何文字)。
...
<configuration>
<appSettings>
<add key="NODE_ENV" value="production" />
</appSettings>
<system.webServer>
<handlers>
<add name="iisnode" path="server/app.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<clear />
<rule name="cdw">
<match url="/*" />
<action type="Rewrite" url="server/app.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
答案 3 :(得分:2)
如果你在Windows上,你可以(也可能应该)在IIS下运行Node.js:
http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx