【发布时间】:2016-03-04 09:27:15
【问题描述】:
我目前正在使用 NodeJS 开发应用程序。
但是,经常服务器会抛出这个错误,我无法与mysql交互。
[Error: read ETIMEDOUT]
code: 'ETIMEDOUT',
errno: 'ETIMEDOUT',
syscall: 'read',
fatal: true }
{ [Error: Cannot enqueue Query after fatal error.] code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR', fatal: false }
有人有解决方案吗?
谢谢
【问题讨论】:
-
您是否尝试重新连接(假设问题是连接丢失)?
-
这实际上是两个独立的错误。其次,这是正常行为,因为一旦发生致命错误,您尝试查询连接时就会发生这种情况。您可能在代码中早些时候调用了连接上的方法,例如查询,并且不小心没有检查返回的错误。另一种可能性是您正在检查错误,但不检查 err.fatal 是否为真并丢弃连接。
-
嘿,您可能已经与 app.js 中必须需要的其他文件中的 sql 建立了连接,并且会在 app.js 或任何其他文件中执行查询包括在内。现在,在建立连接之前或在连接对象中出现错误之后,您仍在进行查询。
-
@mscdex : 是的,我可以重新连接,因为我关闭了服务器
-
@Gary:也许可以,但是为什么一个基本请求会抛出致命错误?
标签: mysql node.js express error-handling