node.js - 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。
解决方案
这可能是由多种原因引起的:
- 如果您使用的是 Windows 很可能是 unicode 问题,您可以通过执行chp 命令来解决,
chcp 850
但如果您需要 Unicode 字符,那么iconv-lite模块应该会有所帮助 - 尝试写入已关闭的终端时
- 磁盘相关问题,例如磁盘已满或操作系统问题...尝试写入输出时
- 尝试将模块重新安装到最新版本并从头开始,因为您可能正在使用有问题的模块或未正确安装
推荐阅读
- mongodb - Spring-data 2.1 使用 kotlin 获取“UnsupportedOperationException:没有访问器设置属性”
- node.js - 在 TypeScript 中使用 instanceof
- linux - 内核在内核空间中所处的上下文
- python - 您能否检查“-: 'str' 和 'int' 不支持的操作数类型”
- dart - 如何在 Flutter 中以编程方式关闭 Persistent Bottom Sheet?
- javascript - 从状态数组中删除项目并将此项目添加到另一个状态数组
- mysql - Getting WordPress images into the Media Library after migration
- angular - How to populate an html table from angular http get that returns an array of JSON
- .net - .NET Reflector freezes when exporting dll
- r - 使用 ggplot 散点图修复调色板