我正在编写自己的类来管理 express 框架内的 mongodb 查询。
这门课的样子
var PostModel = function(){};
PostModel.prototype.index = function(db){
db.open(function(err,db){
if(!err){
db.collection('post',function(err,collection){
collection.find().toArray(function(err,posts){
if(!err){
db.close();
return posts;
}
});
});
}
});
};
当我调用这个函数时:
// GET /post index action
app.get('/post',function(req,res){
postModel = new PostModel();
var posts = postModel.index(db);
res.json(posts);
});
我不知道为什么函数索引似乎没有返回任何内容。
但是如果我像这样改变索引函数
var PostModel = function(){};
PostModel.prototype.index = function(db){
db.open(function(err,db){
if(!err){
db.collection('post',function(err,collection){
collection.find().toArray(function(err,posts){
if(!err){
db.close();
console.log(posts);
}
});
});
}
});
};
注意console.log 而不是return。通过这些更改,我可以在终端中看到我想要的所有帖子。这是因为该函数按应有的方式检索所有帖子。
问题是它不返回帖子:(