我正在尝试使用 Mongoose 将 MongoDB 与 Nodejs 连接起来。
我的代码如下。当我尝试通过 api/users 进行 GET/POST 时,我得到了
错误
TypeError: Object function model(doc, fields, skipId) {
[08/14 21:28:06 GMT+0800]     if (!(this instanceof model))
[08/14 21:28:06 GMT+0800]       return new model(doc, fields, skipId);
[08/14 21:28:06 GMT+0800]     Model.call(this, doc, fields, skipId);
[08/14 21:28:06 GMT+0800]   } has no method 'list'
有人可以解释我做错了什么吗?我不得不将我的代码分成不同的文件,因为我有很多函数,我不想把它们弄乱我的 app.js 或 index/routes.js
应用程序.js
//database connection 
mongoose.connect('....');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
 console.log("Conncection Success !");
});
users_module= require('./custom_modules/users.js');
users_module.init_users();
...
    app.get('/api/users',user.list);  // routing code from expressjs 
/custom_modules/users.js
function init_users() {
    userSchema = mongoose.Schema({
        //id: Number,
        usernamename: String,
        hash: String,
        ...
    });
    userSchema.methods.list = list;
    UserModel = mongoose.model('User', userSchema);
}
function list() {
    return UserModel.find(function (err, users) {
        if (!err) {
            return users;
        } else {
            return console.log(err);
        }
    });
});
exports.init_users = init_users;
路线/user.js
exports.list = function (req, res){
    var users = UserModel.list();  // <---------- This is the error Line 
    return res.send(users);
}