如何从承诺中提取对象?
我试图从一个nosql数据库中获取一些信息,然后通过我的模板引擎(handlebars)读取这些信息,但我不知道该怎么做
我得到的是这个消息:
这里是我写的一些代码,认为它可以工作
let blogPosts = blog.find().where().exec(function(err, blogInfo){ return blogInfo }); router.get('/', function(req, res) { res.render("blog-home", {blogposts: blogPosts}) });
谢谢。
为了从承诺中提取对象,您必须等待承诺完成。 你可以通过使用“.then”来实现。
let blogPosts = blog.find().where().exec(function(err, blogInfo){ return blogInfo }); router.get('/', function(req, res) { blogPosts.then(function (posts) { res.render("blog-home", {blogposts: posts}); }); });
一旦值存在 ,您必须等待承诺解决, 然后渲染模板。
router.get('/', function(req, res) { let blogPostsPromise = blog.find().where().exec(function(err, blogInfo) { return blogInfo }); blogPostsPromise .then(blogPosts => res.render("blog-home", { blogposts: blogPosts })) .catch(next); });