使用Mongoose ^6.9.1时Fawn报“The provided mongoose instance is invalid”错误
解决Fawn初始化时"The provided mongoose instance is invalid"错误
你的代码如下:
const mongoose = require("mongoose"); const Fawn = require("fawn"); mongoose .connect("mongodb://0.0.0.0:27017/rental") .then(() => console.log("Database rental connected")) .catch((err) => console.log(err.message)); Fawn.init(mongoose);
运行后出现错误:
C:\xampp\htdocs\mongo-rental\node_modules\fawn\lib\fawn.js:30 throw new Error("The provided mongoose instance is invalid"); ^ Error: The provided mongoose instance is invalid at Object.init (C:\xampp\htdocs\mongo-rental\node_modules\fawn\lib\fawn.js:30:15) at Object.<anonymous> (C:\xampp\htdocs\mongo-rental\index.js:15:6) at Module._compile (node:internal/modules/cjs/loader:1218:14) at Module._extensions..js (node:internal/modules/cjs/loader:1272:10) at Module.load (node:internal/modules/cjs/loader:1081:32) at Module._load (node:internal/modules/cjs/loader:922:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47
核心原因
Fawn项目维护停滞已久,对Mongoose 6.x及以上版本的实例结构不兼容,导致初始化时验证失败。
解决步骤
1. 降级Mongoose到兼容版本
将Mongoose降级到5.x系列是最直接的解决方案,推荐使用5.13.20版本:
npm uninstall mongoose npm install mongoose@5.13.20
2. 调整初始化时机(可选)
将Fawn的初始化逻辑放在Mongoose连接成功的回调中,确保mongoose实例完全就绪:
const mongoose = require("mongoose"); const Fawn = require("fawn"); mongoose .connect("mongodb://0.0.0.0:27017/rental") .then(() => { console.log("Database rental connected"); Fawn.init(mongoose); }) .catch((err) => console.log(err.message));
3. 清理依赖重装(若上述步骤无效)
若降级后仍有问题,清理现有依赖文件后重新安装:
# Windows系统 rmdir /s /q node_modules del package-lock.json # macOS/Linux系统 rm -rf node_modules package-lock.json npm install
内容的提问来源于stack exchange,提问作者Manish Stark
相关产品推荐
相关产品推荐

