我知道回调和中间件next()函数之间的区别。
如果在Loopback中编写自定义远程方法,我可以轻松地在回调中发送错误,例如回调(错误,空),但是只要我在next()函数中发送错误,就会在远程挂钩或观察者中发送错误例如
var err = new Error('This is error');
next(err)
它总是说内部服务器错误,但它没有告诉我错误是什么。 为了查看错误,我必须登录到服务器并查看日志。 请告诉我如何在next()函数中发送错误作为响应,以便在前端我知道发生了什么错误。
答案 0 :(得分:0)
也许使用中间件来挂钩:
app.use( function(err,req,res){
res.json(err);
});
(这需要他定义的最后一个中间件......)
答案 1 :(得分:0)
基本上你可以用err和result定义回调。 例如在环回中, 如果我有一个模型调用“Action”,您可以使用json将err或结果发送到前端。
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”功能。