首页 > 解决方案 > node.js 中的“EIO:i/o 错误,写入”是什么,如何消除它?

问题描述

我有一个 node.js 应用程序使用 elasticsearch 来收集错误数据并通知相关的堆栈持有者。最近它开始给我错误(代码没有改变):

write EIO
Error: write EIO
    at afterWriteDispatched (internal/stream_base_commons.js:154:25)
    at writeGeneric (internal/stream_base_commons.js:145:3)
    at WriteStream.Socket._writeGeneric (net.js:783:11)
    at WriteStream.Socket._write (net.js:795:8)
    at doWrite (_stream_writable.js:385:12)
    at writeOrBuffer (_stream_writable.js:367:5)
    at WriteStream.Writable.write (_stream_writable.js:307:12)
    at Stdio.write (/project/node_modules/elasticsearch/src/lib/loggers/stdio.js:58:6)
    at Stdio.onError (/project/node_modules/elasticsearch/src/lib/loggers/stdio.js:70:8)
    at Log.wrapper (/project/node_modules/lodash/lodash.js:4929:19)
    at Log.emit (events.js:315:20)
    at Log.error (/project/node_modules/elasticsearch/src/lib/log.js:239:17)
    at checkRespForFailure (/project/node_modules/elasticsearch/src/lib/transport.js:298:18)
    at HttpConnector.<anonymous> (/project/node_modules/elasticsearch/src/lib/connectors/http.js:171:7)
    at ClientRequest.wrapper (/project/node_modules/lodash/lodash.js:4929:19)
    at ClientRequest.emit (events.js:315:20)

我怀疑这与磁盘上某种类型的 I/O 错误有关。我能做些什么来消除错误?我正在使用 Node.js v14.0.0 和 elasticsearch(npm 包)16.7.1。

标签: node.jselasticsearch

解决方案


这可能是由多种原因引起的:

  • 如果您使用的是 Windows 很可能是 unicode 问题,您可以通过执行chp 命令来解决,chcp 850但如果您需要 Unicode 字符,那么iconv-lite模块应该会有所帮助
  • 尝试写入已关闭的终端时
  • 磁盘相关问题,例如磁盘已满或操作系统问题...尝试写入输出时
  • 尝试将模块重新安装到最新版本并从头开始,因为您可能正在使用有问题的模块或未正确安装

推荐阅读