【发布时间】:2022-02-15 15:05:10
【问题描述】:
我正在尝试将 Node.js Web 应用程序首次部署到 Azure 应用程序服务。 我正在通过 VS 2019 发布,看起来发布正确。
我可以使用默认项目创建附带的标准 server.js 代码 sn-p 进行发布。在浏览器中,我看到了正确的 Azure URL,并且“Hello World”显示正确。
这里是默认代码sn-p:
'use strict';
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);
我正在尝试使用 express 创建一个简单的 WebService API。
这里是sn-p的代码:
const express = require('express');
const server = express();
server.get('/', (req, res) => {
res.send('root:: Azure Express Web Server Successful!');
});
server.listen(4242, () => {
console.log('Express Test is Running...');
});
我已通过 VS 2019 将 express 包添加到项目中,因此它确实显示在我的 npm 包列表和我的 packages.json 文件中:
{
"name": "foo-bar",
"version": "0.0.0",
"description": "FooBar",
"scripts": {
"start": "node server"
},
"engines": {
"node": "~6.10.x"
},
"author": {
"name": ""
},
"dependencies": {
"express": "^4.17.2",
}
}
似乎已成功发布到我的 Azure 应用服务 (Windows)。 但是,当我在浏览器 (Chrome) 中点击 URL 时,我收到以下错误消息:
页面无法显示,因为内部服务器错误 发生了。
这是一个简单的 Node.js 应用程序,可以通过 VS 2019 和命令行在本地正确运行。 我的代码模块或包定义有问题吗? 我是否缺少正确发布 npm 依赖项的步骤? 我如何追踪这个错误? 我应该使用 Express 模板吗?
从 Azure - Application Performance Analyzer - Failed Requests,我看到以下错误信息:
方法请求路径持续时间失败模块失败状态最终状态详细信息
获取 / 51.28 秒 iisnode 500.1001 200.0
获取 / 51.46 秒 iisnode 500.1001 200.0
请求详细信息
请求http://WebServerTest20220214013438:80/
RequestId8000032f-0000-e700-b63f-84710c7967bbReasonInternal 服务器错误
HTTP状态200.0CS-Bytes1447SC-Bytes452
Total Time Spent51,284 msError Code0ModuleNameiisnodeNotificationExecuteRequestHandler
【问题讨论】:
-
在 azure 仪表板中肯定有一个日志查看器可以告诉你发生了什么。
-
刚接触 Azure,试图弄清楚这一点。查看了此服务的活动日志,但没有看到任何内容。当然,这肯定是在 Azure 和本地配置/使用 express 之间的区别。 Node.js 新手,但在源 sn-p 或 packages.json 文件中看不到任何明显内容。
标签: node.js express azure-web-app-service azure-appservice