Estoy comenzando con NodeJS + MongoDB y tengo una pregunta hace un par de días que no pude encontrar la manera de resolverla.
Mi problema es:
Tengo un archivo de ruta que hace una llamada a un modelo, como en el siguiente ejemplo:
Archivo de rutas:
'use strict'; module.exports = function(app) { app.get('/api/hotels/', function(req, res) { let hotels = new app.model.Hotels(); hotels.pageList(req.params.page, req.params.qtd, (err, docs) => { res.status(404).json({ msg: 'implementation not found' }) }) }) }Archivo de modelos:
'use strict'; function Hotels() { this._hotels = process.db.get().collection('hotels') this._ObjectID = process.db.ObjectID() } Hotels.prototype.pageList = function(page, qtd, cb) { //list all hotels this._hotels.find(function(err, hotels) { if (err) { return err; } else { return hotels; } }) cb() } module.exports = function() { return Hotels }El problema es que no estoy seguro de cómo puedo devolver el resultado del modelo a la ruta y mostrar el objeto JSON en el navegador del usuario.
¿Alguien puede ayudarme?
Pruébalo así:
Hotels.prototype.pageList = function(page, qtd, cb) { //list all hotels this._hotels.find(function(err, hotels) { cb(err, hotels); }); }Luego, en tu ruta puedes hacer esto:
app.get('/api/hotels/', function(req, res) { let hotels = new app.model.Hotels(); hotels.pageList(req.params.page, req.params.qtd, (err, hotels) => { if(err) res.status(404).json({ msg: 'implementation not found' }); res.json(hotels); }) }) }