process.env.port变量上的Node.js和MS Azure

process.env.port变量上的Node.js和MS Azure,node.js,azure,Node.js,Azure,考虑以下Node.js代码: var http = require('http'); var port = process.env.port || 1337; http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }).listen(port); 由于process.env.port变量中的字符

考虑以下Node.js代码:

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

由于process.env.port变量中的字符串值(例如:\。\pipe\e289ed7e-b57b-46bb-8bba-ad8cd1f1529cf),它在Microsoft Azure中不起作用。为什么会发生这种情况?

应该区分大小写。尝试:

process.env.PORT

唯一应该做的是拥有一个正确的web.config文件,用于处理Microsoft Azure中的命名管道端口。此文件最简单的内容可以是:

<configuration>
<system.webServer>
      <handlers>
        <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
      </handlers>
      <rewrite>
        <rules>
          <rule name="DynamicContent">
            <match url="/*" />
            <action type="Rewrite" url="server.js"/>
          </rule>
        </rules>
      </rewrite>
</system.webServer>
</configuration> 


如果您的初始NodeJS文件是app.js,请用它替换上面内容中的server.js字符串

也许我误读了这个问题,但它指出,
process.env
是未定义的,不仅仅是
process.env.port
。我编辑了这个问题,有一些关于它的链接!但解决方案仍然不起作用!我没有atm工具,但从我的项目中我可以看出我一直在使用这个变量,他们也在他们的教程中使用它。您还可以使用process.env访问应用程序设置和连接字符串。它必须起作用。也许是其他原因导致了这个问题。同样的问题:一个有用的页面:有一些关于它的链接!但解决方案仍然不起作用!试试:process.env.PORT | | process.env.PORT | | 1337谢谢您的解决方案。它在我们的应用程序上运行良好。我们花了一天时间在Azure网站上解决了这个问题。谢谢。令人惊讶的是,在Azure上node js应用程序的前2名谷歌搜索结果中,这一点并不清楚(或完全缺失)。此外,
env
对象上的“port”(vs port)属性的情况似乎也不一致。