使用 Mongoose 保存和查找
Save and Find with Mongoose
我正在构建一个平均堆栈应用程序。这是我的控制器中的功能之一。
module.exports.postSuck = function(req, res){
var suck = new Suck(req.body, false);
console.log(req.body)
suck.save(function(err){
if(err){
console.log(err)
}
else{
console.log("saved");
}
});
Suck.find({})
.sort({date: -1})
.exec(function(err, allSucks){
if(err){
res.error(err);
} else {
res.json(allSucks);
}
console.log("found");
});
};
我会在每个事件发生时登录到控制台 "saved" 和 "found"。它总是在 "found" 之后打印 "saved",即使保存函数在代码的前面。为什么会这样?我猜这与异步有关,但有人知道如何解决这个问题吗?
您可以将 .find()
函数放在 .save()
函数的 else 语句中。这将帮助您 .find()
函数将在 .save()
函数完成时触发。使用旧代码,函数是同时调用的,.find()
完成速度更快。
module.exports.postSuck = function(req, res){
var suck = new Suck(req.body, false);
console.log(req.body)
suck.save(function(err){
if(err){
console.log(err)
}
else{
console.log("saved");
Suck.find({})
.sort({date: -1})
.exec(function(err, allSucks){
if(err){
res.error(err);
} else {
res.json(allSucks);
}
console.log("found");
})}})};
希望对您有所帮助!祝你好运!
我正在构建一个平均堆栈应用程序。这是我的控制器中的功能之一。
module.exports.postSuck = function(req, res){
var suck = new Suck(req.body, false);
console.log(req.body)
suck.save(function(err){
if(err){
console.log(err)
}
else{
console.log("saved");
}
});
Suck.find({})
.sort({date: -1})
.exec(function(err, allSucks){
if(err){
res.error(err);
} else {
res.json(allSucks);
}
console.log("found");
});
};
我会在每个事件发生时登录到控制台 "saved" 和 "found"。它总是在 "found" 之后打印 "saved",即使保存函数在代码的前面。为什么会这样?我猜这与异步有关,但有人知道如何解决这个问题吗?
您可以将 .find()
函数放在 .save()
函数的 else 语句中。这将帮助您 .find()
函数将在 .save()
函数完成时触发。使用旧代码,函数是同时调用的,.find()
完成速度更快。
module.exports.postSuck = function(req, res){
var suck = new Suck(req.body, false);
console.log(req.body)
suck.save(function(err){
if(err){
console.log(err)
}
else{
console.log("saved");
Suck.find({})
.sort({date: -1})
.exec(function(err, allSucks){
if(err){
res.error(err);
} else {
res.json(allSucks);
}
console.log("found");
})}})};
希望对您有所帮助!祝你好运!