如何为web应用程序运行Node.JS服务器?
信息:我对node.JS很陌生 我已经编写了一个示例服务器,它可以侦听端口XXXX上的http请求。当我从命令行(Windows)运行此服务器时,它似乎运行良好。它在浏览器中打开时响应对localhost:XXXX的请求 问:这是怎么回事?要运行节点服务器,是否应该始终打开CMD提示符,以便服务器侦听请求? 我不能用iSnode做点什么吗 我理解如果我向一个JS文件发出请求,该文件在IISNode中记为Node.JS文件,并且该节点应该处理它;然后,我将让节点为我处理请求。 但这假定IIS是我的web服务器,并且特定的请求可以由节点处理如何为web应用程序运行Node.JS服务器?,node.js,iisnode,Node.js,Iisnode,信息:我对node.JS很陌生 我已经编写了一个示例服务器,它可以侦听端口XXXX上的http请求。当我从命令行(Windows)运行此服务器时,它似乎运行良好。它在浏览器中打开时响应对localhost:XXXX的请求 问:这是怎么回事?要运行节点服务器,是否应该始终打开CMD提示符,以便服务器侦听请求? 我不能用iSnode做点什么吗 我理解如果我向一个JS文件发出请求,该文件在IISNode中记为Node.JS文件,并且该节点应该处理它;然后,我将让节点为我处理请求。 但这假定IIS是我的
我希望我在这里讲得通!:) 如果您在Windows上,您可以(也可能应该)在IIS下运行Node.js:
在Windows上,您有两种托管node.js应用程序的选项:
我用适当的方法解决了它。是的,我想是。。但这些评论似乎都没有回答如何为托管在同一IIS上的不同应用程序“运行”app.js(该IIS还提供PHP、ASPX等服务) 第一步。 为新的URL结构编辑节点应用程序的入口点(通常为app.js) express应用程序假定它拥有整个URL空间,并从根目录本身启动URL,如图所示:
编辑app.js,使其如下所示(但将应用程序的目录名改为“aaspass”!!):
现在,在应用程序的根目录下放置一个web.config文件,如下所示(您可以使用此模板:webconfig) 再次编辑文件并将名称“aaspass”更改为应用程序的目录名。
就这样!您可以根据需要对任意多个应用程序执行此操作,并将它们托管在同一台服务器上。对我有用的是:
iisnode不知道,但在linux/unix上,您希望使用nohup
或在后台运行进程。后一种方法非常适合在应用程序崩溃时保持其运行。我对Unix不太熟悉。您的意思是shell提示符始终处于打开状态,以便节点服务器继续运行吗?或者它可以在后台运行,就像后台进程一样,用户看不见。是的,进程就是在后台运行的。我想你可以看看永远,也应该在windows机器上工作(但正如我之前所说,我不知道iisnode是否内置了这样的功能)。。。但它似乎并没有回答我的问题:(当我们说“主机使用IISNode”时,我们是什么意思?包括app.js使用是否可以使用nssm并获取当前登录用户的用户id?如果您是“自主机”IIS与node.js同时使用端口80会怎么样?我的意思是谁在端口3000上托管一个站点lol@Epirocks您可以使用IIS ARP执行反向代理
<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>