Javascript NodeJS Express REST API get请求返回空

Javascript NodeJS Express REST API get请求返回空,javascript,node.js,rest,express,mongoose,Javascript,Node.js,Rest,Express,Mongoose,我正在尝试用NodeJS和Express构建restapi。我为报价创建路由,当我尝试发送GET请求时,我会得到带有200状态代码的空响应 routes.js router.get('', passport.authenticate('jwt', { session: true}), OfferController.getOffers); offerController.js exports.getOffers = function(req, res) { Offer.find

我正在尝试用NodeJS和Express构建restapi。我为报价创建路由,当我尝试发送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是mongoose模型,您无法将其发送回。您不需要返回它,因为它是异步的

使用此结构:

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.find{}的输出,即task

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

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

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

你能解释一下你改变了什么吗?解释为什么会把一个正确的答案变成一个伟大的答案answer@SterlingArcher你说得对,我已经解释了我的答案-