node.js - 我在 nodejs 中收到一个 ParseError 并且有一个非常不正确的错误消息

标签 node.js

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: Parse Error
    at Error (native)
    at Socket.socketOnData (_http_client.js:317:20)
    at Socket.emit (events.js:107:17)
    at readableAddChunk (_stream_readable.js:163:16)
    at Socket.Readable.push (_stream_readable.js:126:10)
    at TCP.onread (net.js:538:20)

此错误的可能原因是什么?我可以在哪里放置 try-catch 或 fun(err) 来进行错误处理!我什至没有得到这个错误的来源,这个错误的可能来源是什么?

最佳答案

当 gulp 作为代理运行时,我得到了一个非常相似的堆栈跟踪。

Error: Parse Error
    at Socket.socketOnData (_http_client.js:411:20)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:191:7)
    at readableAddChunk (_stream_readable.js:178:18)
    at Socket.Readable.push (_stream_readable.js:136:10)
    at TCP.onread (net.js:563:20)

一段时间后我找到了根本原因。

由于后端错误,后端服务器正在发送重复的 header 。通过删除重复的 HTTP header 修复了 javascript 前端中的此错误。

重复的 http header 示例(例如内容长度):

< HTTP/1.1 200 OK
< server: Cowboy
< date: Thu, 25 Jan 2018 12:47:15 GMT
< content-length: 4789
< content-type: text/html
< content-length: 4789
< date: Thu, 25 Jan 2018 12:47:14 GMT
< server: Cowboy

关于node.js - 我在 nodejs 中收到一个 ParseError 并且有一个非常不正确的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31646143/

相关文章:

javascript - 如何使用 fetch 将变量发送到 GET 请求?

mongodb - 每小时更新数据库(mongo)的最佳方法?

Javascript:具有多个查询参数的嵌套 JSON api 请求

node.js - 如果重点关注建模数据,那么哪个(内存中)图形数据库

php - laravel echo 与 redis 和 socket io

javascript - 更新/删除 Node js中的注释

javascript - 在 Node.JS 中,我如何使用 Google Sheets API "shift"增加整个值范围?

mysql - SequelizeConnectionError : Client does not support authentication protocol requested by server; consider upgrading MariaDB client

node.js - 有没有办法查看 Hapi 服务器中的所有路由

javascript - Angular 如何与 Ionic 应用程序中的 Node 一起工作?