【发布时间】:2015-05-18 14:21:58
【问题描述】:
当我在我的 NodeJS 应用程序中转到页面 /bla 时,控制台会打印出来
GET /bla - - ms - -
用文字(为了便于 Google 搜索)dash dash ms dash dash。
这是什么意思?
【问题讨论】:
当我在我的 NodeJS 应用程序中转到页面 /bla 时,控制台会打印出来
GET /bla - - ms - -
用文字(为了便于 Google 搜索)dash dash ms dash dash。
这是什么意思?
【问题讨论】:
这是来自 morgan 的输出,它是 node.js 的 HTTP 请求记录器中间件。
默认情况下,它将所有请求记录到控制台。根据您的配置,它将显示来自请求的不同数据。
如果使用默认格式(dev),显示的数据为:
:method :url :status :response-time ms - :res[content-length]
【讨论】:
根据this thread:
日志行 GET / - - ms - - 是开发格式,表示在 Node.js 因空闲时间过长而终止 TCP 连接之前您从未发送过响应。
所以问题是服务器没有响应请求 - 换句话说,路由中的某些中间件从未调用 next()、res.send()、res.end() 或任何其他响应方式。
我意识到,如果服务器不处理客户端中止请求,也可能发生这种情况(可以通过浏览器发出请求并在完成之前单击地址栏中的 X 按钮来轻松测试)。
根据the docs,处理方法可能类似于(未测试):
req.on('abort', function (err) {
if (err)
console.error(error.message);
// your code here
});
【讨论】: