UnhandledPromiseRejectionWarning: TypeError: UserModel.find is not a function

时间:2021-06-28 15:13:08

标签: node.js mongoose

我的 models/User.js 如下所示:

const mongoose = require('mongoose');    
mongoose.Promise = global.Promise;

class User {
    constructor() {
        this.user = mongoose.model('user', {
        ... ...
        }
    }       
}
const user = new User();
module.exports = user;

try/try.js中:

const UserModel = require('../models/Users')
... ...
let users = await UserModel.find({});

然后,运行 node try.js 会返回错误 (node:41525) UnhandledPromiseRejectionWarning: TypeError: UserModel.find is not a function

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

通过您的代码,您需要访问 user 类实例中的 User 属性才能使用 mongoose 方法。应该是:

let users = await UserModel.user.find({});

注意:如果您没有任何特殊原因/要求将 mongoose 模型包装在一个类中,您可以直接导出 mongoose 模型,然后您在 try.js 中的代码将工作。