gpt4 book ai didi

node.js - nodejs空文档fs.writeFile/appendFile

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:05 27 4
gpt4 key购买 nike

我刚开始使用 Nodejs 编写聊天日志机器人。现在效果很好。除了几个小时之后。机器人会为每个用户创建一个文档,如果该用户尚不存在这样的文档,则该用户将键入一些内容;如果存在,则它将把它放入该文件中。这是我的代码:

fs.open('logs/' + channel.substr(1) + '/' + user.username +'.txt','r',function(err,fd){
if (err && err.code=='ENOENT')
{
fs.writeFile('logs/' + channel.substr(1) + '/' + user.username +'.txt', '[' + 'GMT' + moment().format('Z ') + moment().format('D.M.YYYY H:mm:ss') + '] ' + user.username + ': ' + message + '\n', function (err) {});
} else {
fs.appendFile('logs/' + channel.substr(1) + '/' + user.username +'.txt', '[' + 'GMT' + moment().format('Z ') + moment().format('D.M.YYYY H:mm:ss') + '] ' + user.username + ': ' + message + '\n', function(){});
}
});

问题是用户聊天几个小时后,新用户的文档最终会变成空的。继续聊天的老聊天者也不会在他们的文件中添加新行。

我使用“graceful-fs”模块是因为我希望它能解决问题,但我认为该模块没有太大变化。我究竟做错了什么?为什么我的新 .txt 文件最终为空(0 kb 大小)

最佳答案

当您打开文件描述符时,您最终必须关闭它(fs.close)。每次运行这段代码时,都会泄漏一个文件描述符。每个进程仅限于一定数量的文件描述符,具体取决于您的操作系统和设置。当您用完时,任何需要打开文件的操作都不会成功。

关于node.js - nodejs空文档fs.writeFile/appendFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32162613/

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