process.env.portvariables上的Node.js和MS 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.portvariables中的string值(例如:\。\ pipe \ e289ed7e-b57b-46bb-8bba-ad8cd1f1529cf),它在Microsoft Azure中不起作用。 为什么发生?

唯一要做的就是拥有一个适当的web.config文件,用于处理Microsoft Azure中命名的pipe道端口。 这个文件最简单的内容可以是:

 <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 ,用上面的内容replace掉server.jsstring!

应该区分大小写。 尝试:

 process.env.PORT