node.js - Node.js 中没有请求状态 Morgan Logging

标签 node.js express pm2 morgan

我正在 Azure VM 上运行 node.js 应用程序(使用 PM2 处理负载平衡和重新启动)。这是服务器设置和日志记录代码:

var logger = require('morgan');
var app = express();

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(flash());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/api/v01', api.router);
app.use('/api/v02', apiv2.router);

在最后一天左右,我们在连接网站时开始遇到很多问题。需要重新加载几次才能显示任何数据。

我一直在查看日志,试图找出发生了什么。我没有看到任何错误,但这种情况有很多实例:

WebApp-2 GET /portal - - ms - -
WebApp-3 GET /portal - - ms - -
WebApp-2 GET / - - ms - -
WebApp-2 GET / - - ms - -

这些似乎与人们无法查看页面的情况相符。当一切正常时,日志看起来更像这样:

WebApp-3 GET / 302 16.532 ms - 58
WebApp-3 GET /portal 200 335.192 ms - 5239

格式为:method :url :status :response-time ms - :res[content-length] according to the Morgan docs .

我注意到的一件事是,当服务器没有真正工作时,日志记录会用 - 字符代替状态、响应时间和内容长度。我习惯于看到 - 来表示内容长度;这就是服务器响应 304 时发生的情况。不过,我从未见过响应时间或状态的 -,尽管进行了搜索(Google 和此处的 SO),但我不清楚这真正意味着什么(在引擎盖下)。

有谁知道这种缺乏地位意味着什么?如果它的含义很好理解,我是否犯了一个错误会导致这种情况?

最佳答案

根据问题报告here , GET/- - ms - - 本质上意味着“在 Node.js 因空闲时间过长而终止 TCP 连接之前,您从未发送过响应”。

检查以确保每个请求都收到响应。

关于node.js - Node.js 中没有请求状态 Morgan Logging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39728057/

相关文章:

node.js - Express中如何依赖其他中间件?

node.js - 使用 pm2 读取传递给 node.js 的命令行参数

javascript - Node.js:查询聚合不起作用(mongodb)

javascript - Mongoose 如何填充引用文档

node.js - 事件驱动服务器/应用程序的免费 PaaS 有哪些限制?

javascript - 从 promise 中返回数据到中间件

node.js - PM2:什么是 'version',为什么总是 '0.1.0' ?

nginx - 如何使用 Angular-Cli 运行 PM2? - Angular 2

node.js - 使用 Mongoskin 通过每个产品的字段描述中的单词查找 MongoDB 文档

javascript - 在构造函数中,将构造的对象设置为另一个