17

我们如何告诉 iisnode 在生产/开发/测试中运行我们的 Node.js 应用程序环境?

我们已经成功地让我们的 Node.js 应用程序与 iisnode 一起运行,但process.env.NODE_ENV显示为“未定义”。

目前,我们的 web.config 文件是这样写的:

<configuration>
  <system.webServer>

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

    <rewrite>
      <rules>
        <rule name="app">
          <match url="/*" />
          <action type="Rewrite" url="app.js" />
        </rule>
      </rules>
    </rewrite>

    <security>
      <requestFiltering>
        <hiddenSegments>
          <add segment="node_modules" />
        </hiddenSegments>
      </requestFiltering>
    </security>    

  </system.webServer>
  <appSettings>
    <add key="NODE_ENV" value="production" />
  </appSettings>
</configuration>
4

2 回答 2

16

Joachim 就在上面,添加<iisnode node_env="production" />到 web.config 允许控制 NODE_ENV 值。另一种方法是将iisnode.yml文件添加到 web.config 旁边,并在其中将 NODE_ENV 值指定为node_env: production. 在https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/iisnode.yml查看您可以在 iisnode.yml 中使用的其他设置

于 2013-10-21T16:37:46.077 回答
0

为了清楚起见,web.config文件看起来像这样:

<configuration>
  <system.webServer>

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

    <rewrite>
      <rules>
        <rule name="app">
          <match url="/*" />
          <action type="Rewrite" url="app.js" />
        </rule>
      </rules>
    </rewrite>

    <security>
      <requestFiltering>
        <hiddenSegments>
          <add segment="node_modules" />
        </hiddenSegments>
      </requestFiltering>
    </security>    

    <iisnode NODE_ENV="production" />            <=== Add env required here
  </system.webServer>
</configuration> 
于 2019-09-20T07:52:20.543 回答