Node.js 在创建多个";实例时,一旦编译,就无法覆盖OJLINTTASKCOLLECTION模型;“小鹿”;在nodejs中使用mongoose
这是我使用fawn的mongodb连接Node.js 在创建多个";实例时,一旦编译,就无法覆盖OJLINTTASKCOLLECTION模型;“小鹿”;在nodejs中使用mongoose,node.js,mongodb,express,Node.js,Mongodb,Express,这是我使用fawn的mongodb连接 const mongoose = require("mongoose"); const Fawn = require("fawn"); module.exports = () => { const self = module.exports; mongoose .connect(process.env.MONGO_URI, { useNewUrlParser: true,
const mongoose = require("mongoose");
const Fawn = require("fawn");
module.exports = () => {
const self = module.exports;
mongoose
.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true,
useFindAndModify: false
})
.then(() => console.log("DB Connected"))
.catch(err => {
console.error(
"Failed to connect to the database on startup - retrying in 5 sec"
);
setTimeout(self, 5000);
});
return Fawn.init(mongoose,'OJLINTTASKCOLLECTION ')
};
尽管如此,我为每个应用程序提供了独特的功能。我在编译过程中遇到此错误
OverwriteModelError: Cannot overwrite `OJLINTTASKCOLLECTION ` model once compiled.
我理解为什么会发生这种情况,我正试图在一个预先存在的实例上实例化fawn。但是我如何解决它呢???为什么会出现错误: 当您尝试使用给定集合名称多次注册模型时,会出现
overwriteModeError
错误-
为清楚起见,您注册(或创建)模型是在执行以下操作时:mongoose.model(,schema)
当您这样做时:
Fawn.init(mongoose,'OJLINTTASKCOLLECTION ')
Fawn会在内部尝试向OJLINTTASKCOLLECTION
collection-注册模型。由于此注册操作正在抛出一个OverwriteModeError
,因此很可能您已经在代码中的其他地方向OJLINTTASKCOLLECTION
集合注册了一个模型
修复程序
查看您的mongoose设置,并确认没有其他型号注册在
OJLINTTASKCOLLECTION
集合上,可以解决问题。出现错误的原因:
当您尝试使用给定集合名称多次注册模型时,会出现overwriteModeError
错误-
为清楚起见,您注册(或创建)模型是在执行以下操作时:mongoose.model(,schema)
当您这样做时:
Fawn.init(mongoose,'OJLINTTASKCOLLECTION ')
Fawn会在内部尝试向OJLINTTASKCOLLECTION
collection-注册模型。由于此注册操作正在抛出一个OverwriteModeError
,因此很可能您已经在代码中的其他地方向OJLINTTASKCOLLECTION
集合注册了一个模型
修复程序
查看您的mongoose设置,确认没有其他型号注册到
OJLINTTASKCOLLECTION
collection上,这应该可以解决问题。它在我的机器上工作,无论我输入集合的名称是什么。我将此API代码从GitHub拉到另一台机器上,如中所述,我更改了那里的集合名称,但是,在编译过程中,它抛出overwriteModeError
,无论我输入集合的名称如何,它都在我的机器上工作。我将这个API代码从GitHub拉到另一台机器上,如中所述,我更改了那里的集合名称,但是在编译过程中,它抛出了overwriteModeError