I'm using Monk which is a mongodb driver, and I want to return the value of collection.findOne() to render mypost as a response parameter.
This is my code:
//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
});
//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
});
});
});
});