在Azure中部署的Node.js服务器正在输出内容长度

时间:2019-04-15 17:51:30

标签: node.js azure iis

我的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>

1 个答案:

答案 0 :(得分:2)

我做了以下观察:

在Azure门户中,我通过单击按钮打开Application Insights网站扩展

enter image description here

这会自动创建以下设置:

  • APPINSIGHTS_INSTRUMENTATIONKEY
  • APPINSIGHTS_PROFILERFEATURE_VERSION:1.0.0
  • APPINSIGHTS_SNAPSHOTFEATURE_VERSION:1.0.0
  • ApplicationInsightsAgent_EXTENSION_VERSION:〜2
  • DiagnosticServices_EXTENSION_VERSION:〜3
  • InstrumentationEngine_EXTENSION_VERSION:〜1
  • SnapshotDebugger_EXTENSION_VERSION:〜1
  • XDT_MicrosoftApplicationInsights_BaseExtensions:〜1
  • XDT_MicrosoftApplicationInsights_Mode:推荐

我的节点请求的响应现在是:

29
{"apiBaseUrl":"http://myUrl"}
0

在使用这些新值后,我发现了引起问题的值:

  • ApplicationInsightsAgent_EXTENSION_VERSION:〜2

将其更改为〜1可以解决此问题,并且响应看起来很理想:

  • ApplicationInsightsAgent_EXTENSION_VERSION:〜1

响应:

{"apiBaseUrl":"http://myUrl"}

我认为这是一种超级奇怪的行为。我将创建一个github问题并将其链接。