提问者:小点点

model.find不是mongoose函数


我有一个迷你赌场游戏和猫鼬模型定义如下:

const jackpotSchema = mongoose.Schema({
    round_id: {
        type: String, 
        default: uniqid(), 
        required: true, 
    },
    createdAt: {
        type: Date, 
        required: true, 
        default: Date.now
    },

    closedAt: {
        type: Date,
    },

    startedAt: {
        type: Number, 
    }, 

    roundSecret: {
        type: String, 
        required: true,
    }, 

    random_org_hash: {
        type: String,
    },

    random_org_obj: {
        type: String
    },

    roundSecretHash: {
        type: String, 
    },
    
    winningPercentage: {
        type: Number, 
        // required: true, 
        // first 5 characters of the secret hash, converted into decimal then divided by 10K 
    },
    publicHash: {
        type: String, 
        required: true, 
        // SHA-256 roundSecret + winningPercentage
    },

    finalHash: {
        type: String, 
    },

    winningTicket: {
        type: Number, 
    },

    winningDepositIndex: {
        type: Number, 
    },

    deposits: [{
        uid: {
            type: String, 
            required: true,
        }, 

        user: {
            type: String,
            required: true, 
        },

        nonce: {
            type: Number,
        },

        amount: {
            type: Number, 
            required: true, 
        }, 

        user_avatar: {
            type: String, 
        }, 

        ticketRangeMin: {
            type: Number, 
            required: true, 
        }, 

        ticketRangeMax: {
            type: Number, 
            required: true, 
        },

        referral: {type: String},
        timestamp: {type: Date}, 
        timestamp_readable: {type: String}
    }],

    total: {
        type: Number,
        required: true, 
        default: 0, 
    },

    totalTickets: {
        type: Number, 
        default: 0, 
    }, 

    winner: {
        type: String, 
        default: "",
    },

    winner_avatar: {
        type: String,
    },

    active: {
        type: Boolean, 
        default: true, 
        required: true, 
    },

    open: {
        type: Boolean, 
        required: true,
        default: true,  
    },

    roundTime: {
        type: Number, 
        // default: potConfig.potLength, 
        default: 20000, 
    },

    success: {
        type: Boolean,
    },

    fee: {
        type: Number, 
        default: potConfig.potFee,
    }

})

module.exports = mongoose.model("Jackpot", jackpotSchema)

在本地运行我的应用程序时,我没有遇到任何错误。但是,在ubuntu生产环境中运行时,我得到以下错误:jackpot.find不是函数

堆栈跟踪显示错误来自db_utils.js,如下所示:

const Jackpot   = require("./models/Jackpot");
...
async retrieveStats () {
  var jackpots = await Jackpot.find().lean();
}

我检查了我的module.exports的定义是否正确,它是正确的。不确定为什么会发生这个错误。

我的本地和生产节点版本匹配。12.18.4


共1个答案

匿名用户

你不需要做什么吗

const jackpotSchema = new mongoose.Schema({...})

而不是

 const jackpotSchema = mongoose.Schema({...})