在更新要传递的变量之后,无法呈现页面。
我正在使用节点js和mongodb。我想基本上使用mongodb数据库中的两个“查找”函数更新两个变量。然后,我想将这两个更新的变量传递给要呈现的页面。没有语法错误,因为我通过console.log检查了结果,唯一的问题是执行顺序。
negotiateBook
.find({ buyer: req.user.id })
.populate('buyer seller')
.exec(function(err, foundBook) {
if (err) {
console.log(err);
} else {
booksToBuy = foundBook;
}
});
negotiateBook
.find({ seller: req.user.id })
.populate('buyer seller')
.exec(function(err, foundBook) {
if (err) {
console.log(err);
} else {
booksToSell = foundBook;
}
});
res.render('my-books', {
booksToBuy: booksToBuy,
booksToSell: booksToSell
});
我想要页面booksToBuy
上变量booksToSell
和mybooks
的更新值。当前,即使页面正在渲染,两个变量都为空
编辑- 带有回调
findingCorrectBooks(req.user.id, function() {
negotiateBook
.find({ seller: req.user.id })
.populate('buyer seller')
.exec(function(err, foundBook) {
if (err) {
console.log(err);
} else {
booksToSell = foundBook;
}
});
}, render(res, booksToBuy, booksToSell));
function findingCorrectBooks(userId, callback, render) {
negotiateBook
.find({buyer: userId})
.populate('buyer seller')
.exec(function(err, foundBook) {
if (err) {
console.log(err);
} else {
booksToBuy = foundBook;
}
});
}
function render(res, booksToBuy, booksToSell) {
res.render('mybooks', {booksToBuy: booksToBuy, booksToSell: booksToSell});
}