2017-04-06 132 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接受答案 –