![](/img/trans.png)
[英]Mongoose: OverwriteModelError: Cannot overwrite `users` model once compiled
[英]Cannot overwrite `users` model once compiled
class UserModel {
initSchema() {
const schema = new Schema({
name: "string",
email: "string",
password: "string",
});
mongoose.model("users", schema);
}
getInstance() {
this.initSchema();
return mongoose.model("users");
}
}
export default UserModel;
export class UserModel extends BaseModel {
constructor(model: any) {
const dataAccess = new DataAccess();
model = dataAccess.getSchema("users");
super(model);
}
}
class DataAccess {
getSchema = (schema: any) => {
return mongoose.model(schema);
}
}
** DataAccess class 可以分配給 BaseService 用於數據操作(CRUD)**
** 我在執行操作時收到無法覆蓋數據庫的錯誤**
還困惑如何將 UserModel 的名稱傳遞給 DataAccess Class 方法,以便我可以在 BaseService 中使用它進行數據操作
我認為問題是你每次初始化它時都試圖覆蓋你的 model 。 如果您想首先使用initSchema
,您需要檢查它是否已注冊:
initSchema() {
if (mongoose.models.users) {
return;
}
const schema = new Schema({
name: "string",
email: "string",
password: "string",
});
mongoose.model("users", schema);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.