Установите Node.js Переменная среды (NODE_ENV) в iisnode для производства/разработки/тестирования
Как мы сообщаем iisnode для запуска нашей среды приложений Node.js в процессе производства/разработки/тестирования?
Мы успешно получили наше приложение Node.js, работающее с iisnode, но 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>
Ответы
Ответ 1
Joachim находится прямо над тем, что добавление <iisnode node_env="production" />
в web.config позволяет контролировать значение NODE_ENV. Другим способом является добавление файла iisnode.yml
рядом с вашим web.config, а там spcify значение NODE_ENV как node_env: production
. Другие настройки, которые вы можете использовать в iisnode.yml в https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/iisnode.yml
Ответ 2
Как вы передаете любую переменную среды, например, PORT?
Ответ 3
Для ясности файл 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>