我总是将nodejs与express一起使用,但现在我尝试在nodejs中运行以下脚本(只需在终端中调用"节点myscript.js")
postModel是一个猫鼬模型,在mongodb上进行查询。
'use strict'
var postModel = require(__dirname + '/../model/post').postModel;
myfunction();
function myfunction() {
console.log("before call");
postModel
.find({isArchived: false})
.exec(function(err,result){
console.log("result is ok")
})
};
所以我不明白为什么我从来没有看到"结果没问题"在我的终端。
我也尝试使用async和wait.for库,但是我的脚本在执行异步函数之前停止并返回结果。
我想我只是想念我正在做的事情,但不知道是什么......
答案 0 :(得分:1)
您需要调用mongoose.connect()
来实际连接到数据库。
否则,Mongoose将在内部对您的查询进行排队,并在发出查询之前等待连接。但是,由于该连接永远不会出现(因为mongoose.connect()
没有被调用),所以永远不会处理队列,永远不会发出查询,因此永远不会调用它的回调。