使用Mongoose向MongoDB Compass更新数据时报ReferenceError如何解决
报错修复方案
错误根因
你的代码存在两处问题:
- 变量名不匹配:
firstEmployee.save的回调函数形参定义为err,但你抛出错误时写的是未定义的error变量,直接触发ReferenceError: error is not defined报错。 - 异步逻辑顺序错误:
save是异步操作,你在调用save后直接执行db.close(),会不等数据保存完成就提前关闭数据库连接,即使修复了变量问题也会导致保存失败。
修复后代码
db.on("connection", () => console.log("连接成功")); db.on("disconnect", () => console.log("断开连接成功")); db.on("error", console.error.bind(console, "连接错误:")); db.once("open", function () { firstEmployee.save(function (err, res) { if (err) throw err; // 修正变量名,和形参保持一致 console.log(res); db.close(); // 移到回调内部,保存完成后再关闭连接 }); });
修改后重新运行即可解决问题。
内容的提问来源于stack exchange,提问作者Akash Jangra
相关产品推荐
相关产品推荐

