[英]How to run Node.JS server for a web application?
信息:我对node.JS很新!
我编写了一个可以侦听端口XXXX上的http请求的示例服务器。 当我从命令行(Windows)运行此服务器时,它似乎运行良好。 它响应在浏览器中打开时对localhost:XXXX的请求。
问题:这是应该如何工作的吗? 要使节点服务器运行,是否应始终打开CMD提示以使服务器侦听请求? 我不能用IISNode“做点什么”吗?
我理解,如果我向一个JS文件发出请求,这个文件在IISNode中被记为Node.JS文件并且NODE应该处理它; 然后我会让Node处理我的请求。 但是,这假设IIS是我的Web服务器,并且Node可以处理特定请求。
我希望我在这里有意义! :)
在Windows上,您有两个托管node.js应用程序的选项:
我用适当的方法解决了它。 是的,它是IISNode ..但是没有任何评论似乎回答如何为同一个IIS(也提供PHP,ASPX等)托管的不同应用程序“运行”app.js
步骤1.编辑节点应用程序的入口点(通常)app.js以获取新的URL结构。
Express应用程序假定它拥有整个URL空间并从根本身启动URL,如下所示:
编辑app.js看起来如下(但是把你的应用程序的目录名称改为“aaspass”!!):
现在将web.config文件放在应用程序的根目录下,如下所示(您可以使用此模板:webconfig)。
再次编辑文件并将名称“aaspass”更改为应用程序的目录名称。
而已! 您可以根据需要为多个应用程序执行此操作,并将它们托管在SAME服务器上。
什么对我有用:
在Node.js应用程序/文件夹中添加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>
如果你在Windows上,你可以(也可能应该)在IIS下运行Node.js:
http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.