我们如何告诉iisnode在生产/开发/测试中运行我们的Node.js应用程序环境?
我们已成功使用iisnode运行我们的Node.js应用程序,但process.env.NODE_ENV
显示为'undefined'。
目前,我们的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>
答案 0 :(得分:15)
Joachim就在上面,将<iisnode node_env="production" />
添加到web.config可以控制NODE_ENV值。另一种方法是在web.config旁边添加iisnode.yml
文件,并在其中将NODE_ENV值spcify为node_env: production
。请参阅https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/iisnode.yml
答案 1 :(得分: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>