簡體   English   中英

編譯后無法覆蓋 `users` model

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM