使用whatsapp-web.js RemoteAuth时本地备份文件报错求助
解决WhatsApp Web API RemoteAuth配合MongoStore时的ENOENT文件找不到错误
错误原因
你遇到的ENOENT: no such file or directory错误,是因为wwebjs-mongo的MongoStore在配置了backupPath后,会自动触发本地zip格式的会话备份流程——哪怕你使用的是RemoteAuth远程认证。当前问题的核心点:
- 指定的
backupPath路径可能不存在,或者文件名格式导致系统无法定位到目标文件 authenticated事件里的store.save()调用参数错误,进一步引发了备份流程的异常
解决方案
方案1:移除本地备份(推荐,已用MongoDB存储会话)
如果不需要本地备份,直接删除MongoStore配置中的backupPath参数,彻底跳过本地文件操作,完全依赖MongoDB存储会话:
store = new MongoStore({ mongoose: mongoose, // 移除backupPath参数 });
方案2:修复本地备份路径(若需保留本地备份)
如果必须保留本地备份,需确保路径合法且目录存在:
- 提前创建目标目录:比如
A:\bots\whatsapp-bot这个目录必须手动创建,否则Node进程无法写入文件 - 简化文件名和路径,避免特殊字符:
store = new MongoStore({ mongoose: mongoose, backupPath: path.join(__dirname, "./naveenCLIENTID-backup.zip"), // 使用当前目录下的简洁文件名 });
- 确认Node进程对目标目录有读写权限
方案3:修正store.save()的调用逻辑
你在authenticated事件中的store.save()参数错误,正确的做法是直接传入认证返回的session对象:
client.on("authenticated", (session) => { console.log("Client authenticated, saving session."); store.save(session).then(() => { // 直接传入session对象 console.log("Session Saved"); }); });
内容的提问来源于stack exchange,提问作者Naveen
相关产品推荐
相关产品推荐

