gpt4 book ai didi

javascript - 回调不是 mongoose.find({}) 中的函数

转载 作者:可可西里 更新时间:2023-11-01 09:21:26 26 4
gpt4 key购买 nike

我是 Node.js 和 mongoose 的新手,我正在尝试使用 find({}) 从 mongo 集合中查询对象,函数如下:

schema.statics.listAllQuizes = function listAllQuizes(){
Model.find({},function(err,quizes,cb){
if(err){
return cb(err);
}else if(!quizes){
return cb();
}
else {
return cb(err,quizes);
}
});};

但是当我调用这个函数时我得到一个错误提示

        return cb(err,quizes);
^
TypeError: cb is not a function

我被困在这一点上,有人可以帮我解决这个问题吗,在此先感谢。

最佳答案

回调应该是 listAllQuizes 的参数,而不是匿名处理函数的参数。

换句话说:

schema.statics.listAllQuizes = function listAllQuizes(cb) {
Model.find({}, function(err, quizes) {
if (err) {
return cb(err);
} else if (! quizes) {
return cb();
} else {
return cb(err, quizes);
}
});
};

从逻辑上讲,这几乎与此相同:

schema.statics.listAllQuizes = function listAllQuizes(cb) {
Model.find({}, cb);
};

下面是一个如何使用它的例子:

var quiz = App.model('quiz');

function home(req, res) {
quiz.listAllQuizes(function(err, quizes) {
if (err) return res.sendStatus(500);
for (var i = 0; i < quizes.length; i++) {
console.log(quizes[i].quizName)
}
res.render('quiz', { quizList : quizes });
});
}

关于javascript - 回调不是 mongoose.find({}) 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35238213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com