2017-04-16 147 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); 
});