我的server.js
如下:
var http = require('http');
var server = http.createServer(function (request, response) {
const configs = {
apiBaseUrl: 'http://myUrl'
};
const headers = {
'Content-Type': 'application/json'
};
response.writeHead(200, headers);
response.end(JSON.stringify(configs));
});
var port = process.env.PORT || 1337;
server.listen(port);
console.log("Server running at http://localhost:%d", port);
当我在本地运行此命令时,它会输出以下内容:
{"apiBaseUrl":"http://myUrl"}
但是,当部署到我的Azure实例时,其行为略有不同。它还输出字符数:
29
{"apiBaseUrl":"http://myUrl"}
0
任何线索可能导致此问题吗?
编辑:
我忘了提到我要部署到Azure并准备好web.config
:
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Get dynamic configs in server environment" stopProcessing="true">
<match url="configs.json" ignoreCase="true"/>
<action type="Redirect" url="currentConfigs.js" redirectType="Permanent" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<handlers>
<add name="iisnode" path="currentConfigs.js" verb="*" modules="iisnode" />
</handlers>
</system.webServer>
</configuration>
答案 0 :(得分:2)
我做了以下观察:
在Azure门户中,我通过单击按钮打开Application Insights网站扩展。
这会自动创建以下设置:
我的节点请求的响应现在是:
29
{"apiBaseUrl":"http://myUrl"}
0
在使用这些新值后,我发现了引起问题的值:
将其更改为〜1可以解决此问题,并且响应看起来很理想:
响应:
{"apiBaseUrl":"http://myUrl"}
我认为这是一种超级奇怪的行为。我将创建一个github问题并将其链接。