Node.js多个回调

Node.js multiple callbacks

本文关键字:回调 js Node      更新时间:2023-09-26

我试图从蒸汽获得所有用户项目,所以我需要使用请求模块从蒸汽社区获得json文件。问题是我不知道如何返回json到app.js和通过路由。

var request = require('request');
var userItems = function(req, res){
    var userItems = request('http://steamcommunity.com/profiles/'+req+'/inventory/json/730/2', function (error, response, body) {
      if (!error && response.statusCode == 200) {
        var info = JSON.parse(body);
        return res(info);
      }
    });
}
module.exports.userItems = userItems;

创意是下一个:

app.get('/account/:id', ensureAuthenticated, ensureID, function(req, res){
  res.render('account', { 
    user: req.user,
    items: userItems(req.params.id, res)
  });
});

我是一个初学者,我会从一开始就学习,但现在我只需要工作,因为我的时间很短。谢谢你。

userItems是一个异步操作,所有使用它的结果的代码必须在回调中。试试这个:

app.get('/account/:id', ensureAuthenticated, ensureID, function(req, res){
  userItems(req.params.id, function(info) {
    res.render('account', { 
      user: req.user,
      items: info
    });
  });
});

我认为下一步应该是错误处理。