Node JS + MongoDB - 如何将数据从模型返回到路由?

时间:2017-04-03 15:55:51

标签: node.js mongodb express

我从NodeJS + 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 个答案:

答案 0 :(得分: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);
        })
    })
}