Lo que estoy tratando de hacer es permitir que el usuario obtenga una lista de publicaciones que ha agregado a sus favoritos, lo que se hace simplemente colocando su _id en la matriz de favoritos de la publicación.
al ejecutar esa consulta en particular, regresa como una matriz con entradas sin nombre junto con _locals en la matriz.
Necesito algo más como Publicaciones: [ {}, {} ], _locals.
como hago para ponerlo en ese formato?
var UserSchema = new Schema({ username : String, firstName : String, lastName : String, email : String, password : String }); var PostSchema = new Schema({ author : { type: Schema.Types.ObjectId, ref: 'User' }, date : Date, body : String, username : String, sid : String, views : Number, likes : [{ type: Schema.Types.ObjectId, ref: 'User' }], favorites : [{ type: Schema.Types.ObjectId, ref: 'User' }] }); and the get app.get('/favorites', function(req, res) { Post .find({ 'favorites': '58f4f9e5650785228016287f'}) .exec(function(err, favorites) { res.render('favorites', favorites) console.log(favorites) }) }); I get a response of [ { _id: 58f4f9e96507852280162880, author: 58f4f9e5650785228016287f, body: 'test', date: 2017-04-17T17:22:49.059Z, username: 'test', sid: 'BJ-xquGRl', __v: 2, favorites: [ 58f4f9e5650785228016287f ], likes: [] }, { _id: 58f500edd8abc7242c90d61c, author: 58f4f9e5650785228016287f, body: 'w00p w00p', date: 2017-04-17T17:52:45.612Z, username: 'test', sid: 'BJ8g-tG0e', __v: 1, favorites: [ 58f4f9e5650785228016287f ], likes: [] }, _locals: { user: { id: 58f4f9e5650785228016287f, username: 'test', firstName: 'test', lastName: 'test', email: 'test@test.com' } } ]Ese _locals es algo que Express agrega al objeto que pasa a res.render() . Si invirtiera las llamadas de función que realizó, ya no estaría allí:
console.log(favorites); res.render('favorites', favorites); Sin embargo, el problema principal es que está pasando una matriz ( favorites ) como argumento a res.render() , que espera un objeto en su lugar. La forma correcta de llamarlo sería pasando favorites como un valor de objeto:
res.render('favorites', { favorites : favorites }); // Or in recent Node versions: // res.render('favorites', { favorites });