2017-04-03 54 views
2

我以NodeJS + MongoDB開始,我有一個問題關於幾天,我不知道如何解決它。節點JS + MongoDB - 如何將數據從模型返回到路由?

我的問題是:

我有一個路徑文件,使一個模型的調用,如下面的例子:

路線文件:

'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' 
      }) 

     }) 
    }) 
} 

模型文件:

'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 
} 

問題是,我不知道如何將模型結果返回到路由並在用戶的瀏覽器中顯示JSON對象。

有人可以幫我嗎?

回答

1

試試這樣說:

Hotels.prototype.pageList = function(page, qtd, cb) { 
    //list all hotels 
    this._hotels.find(function(err, hotels) { 

     cb(err, hotels); 
    }); 
} 

然後,在你的路線,你可以這樣做:

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); 
     }) 
    }) 
} 
+0

工作正常! 謝謝! –