process.env.PORT未定义

时间:2017-08-07 15:11:12

标签: iis-8 iisnode

我正在尝试在我的一个运行离线Windows Server 2012的node.js应用程序上进行生产。经过一周的故障排除并阅读我可以上网的所有内容,问题似乎是“process.env。 PORT“变量。

症状如下:

网站在以下情况下正常运作:

set PORT=3510 in console
domain.com:3510/index.html in remote browser

然而,当我输入:

domain.com

我收到了404 - 找不到文件或目录。

当我在server.js启动时console.log“process.env”对象时,console.log会打印一个具有多个属性但没有“PORT”属性的对象(除非我“设置PORT = 3510”)。如果不在启动server.js之前手动设置端口,则“process.env.PORT”console.logs报告未定义。

但是,如果手动指定端口,服务器仍然无法工作,因为根据我读到的,节点希望“process.env.PORT”是命名管道而不是数字。

所以问题非常具体:

如何在Windows 2012服务器上设置“process.env.PORT变量”,以便nodejs可以使用它?

1 个答案:

答案 0 :(得分:0)

您需要在web.config文件中进行设置。您可以将密钥设置为" PORT"拥有你需要的价值。请参阅下面的web.config文件作为示例...

<configuration>
    <appSettings>
        <add key="PORT" value="3510" />
    </appSettings>
    ...(Other configurations here)
</configuration>