繁体   English   中英

NodeJS Express REST API获取请求返回空

[英]NodeJS Express REST API get request returns empty

我正在尝试使用NodeJS和Express构建REST API。 我创造的路线offers ,当我尝试发送GET请求,我得到200个状态码空响应

routes.js

  router.get('', passport.authenticate('jwt', { session: true}), OfferController.getOffers);

offerController.js

  exports.getOffers = function(req, res) {
    Offer.find({}, function(err, task) {
      if (err){
        return res.send(err);
      }
      res.json(Offer);
    });
  }

这里缺少什么?

关于什么:

exports.getOffers = function(req, res) {
    Offer.find({}, function(err, task) {
      if (err){
        return res.send(err);
      }
      // Change this line from res.json(Offer) to:
      res.json(task);
    });
  }

Offer.find()的结果在任务变量中,这就是您要发送回客户端的内容。

Offer是猫鼬模式,您无法将其寄回。 而且您不需要返回它,因为它是异步的。

使用以下结构:

exports.getOffers = function(req, res) {
    Offer.find({}, function(error, result) {
        var myRes = {};
        if(error){
            myRes.error = error;
            myRes.error.message = "Error..."
        }else{
            myRes.data = result;
        }
        res.send(myRes);
    });
  }

您为什么要发送Offer

您应该发送Offer.find({})的输出,即task

因此, res.send(task)应该是错误条件之后的语句。 它看起来像:

exports.getOffers = function(req, res) {
  Offer.find({}, function(err, task) {
    if (err){
      return res.send(err);
    }

    res.json(task); //this
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM