2017-04-06 126 views
0

我正在使用Monk,它是一个mongodb驱动程序,并且我想返回collection.findOne()的值来呈现mypost作为响应参数。无法返回collection.findOne()的值

这是我的代码:

//show single post 
router.get('/show/:id', function(req, res, next){ 
    var mycategories = [] 
    var mypost = {}; 
    var posts = db.get('posts'); 
    var categories = db.get('categories'); 
    posts.findOne({_id: req.params.id}, function(err, post){ 

     }); 
    console.log(mypost); 

    categories.find({}, {}, function(err, categories) { 
     for (i=0; i<categories.length; i++) { 
       mycategories[i] = categories[i]; 
      } 
    }); 
    res.render('show', { 
      'pageTitle': mypost.title, 
      'categories': mycategories, 
      'post': mypost 

     }); 

回答

0
//show single post 
router.get('/show/:id', function(req, res, next){ 
    var mycategories = [] 
    var mypost = {}; 
    var posts = db.get('posts'); 
    var categories = db.get('categories'); 
    posts.findOne({_id: req.params.id}, function(err, post){ 


    //success param is post not my post 
    console.log(mypost, post); 

    categories.find({}, {}, function(err, categories) { 
    for (i=0; i<categories.length; i++) { 
     mycategories[i] = categories[i]; 
    } 

    //you cant get access to outside callback 

    res.render('show', { 
     'pageTitle': post.title, 
     'categories': mycategories, 
     'post': post 

    }); 

    }); 


}); 


}); 
+0

感谢那些工作! ;) – melhirech

+0

如果工作,然后PLZ接受答案 –