gpt4 book ai didi

javascript - ENOTCONN 与管道连接到 process.stdout 和 process.stderr

转载 作者:行者123 更新时间:2023-11-30 06:15:36 26 4
gpt4 key购买 nike

为要写入文件流的 console.log 或 console.error 创建了访问和错误管道或可写流。

var fs = require("fs");
var access = fs.createWriteStream('/node.access.log', { flags: 'a' });
var error = fs.createWriteStream('/node.error.log', { flags: 'a' });
process.stdout.pipe(access); // redirect stdout / stderr
process.stderr.pipe(error);

我的期望是,每当我执行 console.logconsole.error 时,它都会被写入文件输出流。

我有一个错误

Error: read ENOTCONN
at Socket._read (net.js:528:20)
at Socket.Readable.read (_stream_readable.js:457:10)
at resume_ (_stream_readable.js:936:12)
at processTicksAndRejections (internal/process/task_queues.js:84:9)
Emitted 'error' event at:
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at processTicksAndRejections (internal/process/task_queues.js:84:9) {
errno: 'ENOTCONN',
code: 'ENOTCONN',
syscall: 'read'
}

最佳答案

这是因为 process.stdout 是可写流,而不是可读流(或双工流),因此无法绑定(bind)到其事件。

您可以使用双工流覆盖全局 process.stdout(在将原始流保存在另一个全局变量中之后,否则您将需要使用 net 写入文件描述符 IO

关于javascript - ENOTCONN 与管道连接到 process.stdout 和 process.stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56409860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com