【问题标题】:Error Handling in Strongloop LoopbackStrongloop 环回中的错误处理
【发布时间】:2017-09-18 16:29:55
【问题描述】:

我知道回调和中间件 next() 函数之间的区别。

如果在 Loopback 中编写自定义远程方法,我可以轻松地在回调中发送错误,例如 callback(error,null) 但每当我在 next() 函数中发送错误时,在远程挂钩或观察者中例如

var err = new Error('This is error'); next(err)

它总是说内部服务器错误,但它没有告诉我错误是什么。 为了查看错误,我必须登录服务器并查看日志。 请告诉我如何在 next() 函数中发送错误作为响应,以便前端知道发生了什么错误。

【问题讨论】:

    标签: javascript node.js loopbackjs strongloop loopback


    【解决方案1】:

    也许使用中间件来挂钩:

    app.use( function(err,req,res){
      res.json(err);
    });
    

    (这需要他定义的最后一个中间件...)

    【讨论】:

    • 所以@jonas 你告诉有一个端点来检查所有请求的输入或输出?你能详细解释一下吗
    【解决方案2】:

    基本上你可以用 err 和 result 定义回调。 例如在环回中, 如果我有一个模型调用“Action”,你可以简单地使用 json 将错误或结果发送到前端。

     app.get('/your/api/call', function (req, res, next) {
        var getTeam = function (cb) {
          app.models.Team.find({}, function (err, teams) {
            if (err) { 
              cb(err);
            } else { 
              cb(null, teams);
            }
          });
        };
        async.waterfall([
          getTeam
        ], function (err, team, role) {
          if (err){
    res.send(err); //send error  to front end
    } else {
     res.send(team); //send result  to front end
    }
    
        });
      });
    

    这种方法也可以在根级别与“app.use”函数一起使用。

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多