2017-04-16 114 views
1

我试图走出一个的NoSQL数据库的一些信息,然后通过我的模板引擎读取该信息(把手),但我不知道该怎么做如何从承诺中提取对象?

所有我得到是这样的消息: enter image description here

这里有一些我写思想的代码它可以工作

let blogPosts = blog.find().where().exec(function(err, blogInfo){ 
    return blogInfo 
}); 

router.get('/', function(req, res) { 
    res.render("blog-home", {blogposts: blogPosts}) 
}); 

感谢。

回答

1

要从承诺中提取对象,必须等待承诺完成。 您可以通过在承诺中使用“.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}); 
    }); 
}); 
1

您必须等待承诺才能解决,然后然后呈现模板,一旦存在值

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); 
});