process.env.port变量上的Node.js和MS Azure
考虑以下Node.js代码: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变量中的字符
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)属性的情况似乎也不一致。