Windows服务器上的主机节点js(iis)

时间:2017-09-17 17:01:39

标签: node.js iis hosting

我在一个月前开始学习服务器端编码,我使用'express'框架和mssql构建了一个nodejs项目和带有get和post请求的webservices。 我的项目文件包含'main.js'文件和'node_modules'文件夹。

我正在尝试在IIS上托管这个项目,但不知道或不知道如何这样做。

我是否必须以某种方式打包我的项目。

我可以在IIS上托管nodejs项目吗?如果是这样,那么我需要采取哪些步骤。 我有一个运行IIS的Windows服务器,安装了mysql。

1 个答案:

答案 0 :(得分:2)

这是一步一步的事...

  1. 如果尚未安装,请安装nodeiisnodeurlrewrite
    1. 将网站添加到iis enter image description here
    2. 编辑主机文件enter image description here
    3. 将您的网站网址添加到托管enter image description here
    4. 检查新的网站模块以确保已安装iisnode enter image description here
    5. 如果那里不错,你enter image description here
    6. 创建节点应用代码JS文件enter image description here
    7. 将此代码放在文件中
var express = require("express");
var app = express();
app.get("/", function(req, res) {
  res.send("Hello Worlxxxxd!");
});
// This is REQUIRED for IISNODE to work
app.listen(process.env.PORT, () => {
  console.log("listening");
});
  1. 将web.config文件添加到目录中并将此代码放入其中
  

<handlers>
  <add name="iisnode" path="node_app.js" verb="*" modules="iisnode" />
</handlers>

<rewrite>
  <rules>
    <rule name="nodejs">
      <match url="(.*)" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      </conditions>
      <action type="Rewrite" url="/node_app.js" />
    </rule>
  </rules>
</rewrite>

<security>
  <requestFiltering>
    <hiddenSegments>
      <add segment="node_modules" />
      <add segment="iisnode" />
    </hiddenSegments>
  </requestFiltering>
</security>
</system.webServer> </configuration>
    在浏览器中
  1. 导航到新站点,您应该收到此错误,因为尚未安装Express软件包enter image description here

  2. 打开命令提示符并安装Express enter image description here

  3. 刷新网页并瞧瞧enter image description here