如何运行的node.js服务器的web应用程序?(How to run Node.JS server

2019-09-02 05:11发布

信息:我是很新的Node.js的!

我写了一个可以听端口XXXX http请求的样本服务器。 当我运行命令行从该服务器(Windows)中它似乎运作良好。 在浏览器中打开时XXXX:它回应到本地主机发出的请求。

问:这是这是如何工作的? 对于节点服务器来运行,应该有永远是一个命令提示符打开服务器监听请求? 我不能做IISNode“东西”?

我明白,如果我做一个JS文件,这是在IISNode注意作为Node.js的文件,该节点应该处理它的请求; 然后,我将有节点中处理我的请求。 但后来这个假定IIS是对我的Web服务器和具体要求可以通过节点来处理。

我希望我在这里做的意义! :)

Answer 1:

在Windows上,有托管的Node.js应用的两个选项:

  1. 自主机node.exe过程就像你在* nix。 在开发过程中你可能只是在命令行启动它。 在生产中要拿出一个机制,将提供约node.exe过程生命周期管理(如操作系统启动时启动它)。 这样做在Windows上的最合理的方式是使用Windows服务(也称为NT服务)。 它可以帮助你做这个组件是http://nssm.cc/ 。
  2. 使用iisnode node.js的主机与IIS( http://github.com/tjanczuk/iisnode )。 相比于自托管这种方法有许多中列出的好处https://github.com/tjanczuk/iisnode/wiki 。 但你也想探索对性能的影响(并非全部坏实际上): http://tomasz.janczuk.org/2012/06/performance-of-hosting-nodejs.html 。


Answer 2:

我解决它使用适当的方法。 是的,IISNode它。但没有任何意见似乎回答托管在同一IIS不同的应用程序如何“跑” app.js(这也是服务PHP,ASPX等)

步骤1.编辑您的节点应用程序的入口点(典型值)app.js新的URL结构。

明示的应用程序假定它拥有整个URL空间,从根自身开始的URL,如下所示:



编辑您app.js看起来像以下(但放的不是“aaspass”应用程序的目录名!):





现在把web.config文件在您的应用程序的根,它看起来像下面的(你可以使用这个模板:webconfig)。

重新编辑该文件并更改名称“aaspass”到应用程序的目录名。


而已! 根据需要您可以为许多应用程序做到这一点,收留他们同一台服务器上。



Answer 3:

什么工作对我来说:

  1. 安装IISNode
  2. 安装URL重写IIS的模块
  3. 添加web.config文件在你的Node.js应用程序/文件夹。 下面是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>


Answer 4:

如果您使用的是Windows,你可以(并且可能应该)在IIS中运行Node.js的:

http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx



文章来源: How to run Node.JS server for a web application?