我有这段代码
exports.index = function (req, res) {
res.render('product/index.jade', {
products: db.products.find().toArray(function (err, prods) {
if (!err)
return prods;
return [];
})
});
};
我在这里要做的是将查询结果传递给jade视图,该视图需要一个名为“products”的参数。 我已经尝试了很多组合,但它们都不起作用(现在我得到“无法读取自己的长度......”)。 我知道这肯定是一个新手的错误,但我无法弄明白,任何帮助都会被贬低!
PS:我正在使用express和mongodb。是的,产品系列确实包含产品。
答案 0 :(得分:1)
toArray实际上并不返回值。相反,一旦查找完成,就会将产品作为参数调用回调函数。这是由于节点的异步I / O性质。
您的代码应该看起来像这样
exports.index = function (req, res) {
db.products.find().toArray(function (err, prods) {
if (!err)
res.render('product/index.jade', {products: prods});
else
res.render('product/index.jade', {products: []});
});
});