使用winston记录器与hapi.js一起使用时,我们偶尔会收到以下消息:
data: {"bytesParsed":0,"code":"HPE_INVALID_EOF_STATE"}
这是什么意思?它来自哪里?
HPE_INVALID_EOF_STATE
中,HPE
代表 HTTP 解析器错误,而 EOF
则表示文件结束。可以将其解读为遇到了意外的文件(或字符串)结束的 HTTP 解析器错误。
那么我们再深入一些。当查看 特定行 时,我发现 HPE_INVALID_EOF_STATE
错误发生在收到0字节的HTTP数据包时。
它发生在 http_parser_execute()
方法中,很可能是由于到达了格式不正确的 HTTP 数据包所致。看起来这个问题已经被解决了,这是针对旧版本 Node.js 的情况:
https://github.com/nodejs/node-v0.x-archive/issues/5220