从 API 中提取信息并将其添加到数据库(MEAN 堆栈)

Pulling information from API and adding it to database (MEAN stack)

我觉得自己像个彻头彻尾的白痴,但我和一个朋友正在一起做一个项目,但无法找到 return 从 Etsy API 请求的项目的第一条路线,并添加了 getAllListings项目到数据库。如果您能明显看出我们做错了什么,请告诉我。

我还应该提到,虽然语句 console.dir(body) 确实将项目打印到终端,但看起来内容并没有传递到 GET '/api/etsy/getListings'

谢谢!

routes.js

//this i want to return a list of active listings from the users shop.

app.get('/api/etsy/getListings',function(req, res){
    bEtsy.getAllListings(req, res, function(err, body) {
    });
  res.json(req.body);
});

bEtsy.js

var standardCallback = function (err, status, body, headers, callback) {
  if (err) {
    console.log(err);
    return callback(err, null);
  }

  if (body) {
    console.dir(body);
    return callback(null, body);  // this gives me an error
  }
} 


var getAllListings = function(itemId, callback){
  var Item = mongoose.model('Item');
  var listingsParams = {
    include_private: true
  }

  etsy.auth().get(
    '/shops/'+etsy.shop+'/listings/active', 
    listingsParams, 
    function(err, status, body, headers){
      var newi = new Item({name: body.title, stock: body.count, owner: "00000000000000000000", 
        etsy:{listingId: body.listing_id, stock: body.count}});
      newi.save(function(err){
        if (err) return handError(err);
      });
      standardCallback(err, status, body, headers, callback);
    }
  );
}; 

你用三个参数调用这个函数,而它只需要两个参数

bEtsy.getAllListings(req, res, function(err, body) {
});

最重要的是,第一个参数 itemId 被传递给请求对象,然后它也从未在函数本身内部使用,但一些名为 listingsParams 的全局变量是?!?