我有一个Angular应用程序在Node JS中使用API REST创建,问题是我不确定将错误传达给客户端的最佳形式,我想这是发送状态为500但在这种情况如何在Angular中传达此消息?
例如我在Node
中有以下方法router.post('/create', function(req, res, next) {
models.form.create(req.body
).then(function(form) {
res.send(form.dataValues)
}).catch(function(error) {
console.log (error);
res.status(500).send(error);
});
});
这是在Angular中使用的服务
createForm : function (form) {
var auxResource = $resource(localPath + 'create');
return new auxResource(form).$save()
.then(function (formCreated) {
console.log(formCreated);
formCreate = formCreated;
})
},
控制器方法
this.create = function create () {
formRESTService.create($scope.form)
.then(function () {
$location.path("/formList");
})
.catch(function (error) {
console.log("entre al cath");
console.log("ENTREEEEE" + error);
});
}
问题是,角度永远不会导致错误我怎么能这样做?
答案 0 :(得分:0)
我认为有一个简单的原因。
您正在使用.then()
回调。不,如果您查看$resource
的文档,您会看到,此回调需要两个函数:
.then(function(data) {...}, function(error) {...});
错误回调通常会捕获500错误。
如果您不希望成功回调中有正文并且省略成功回调,那么您只能使用.catch(...)
。
请参阅https://docs.angularjs.org/api/ng/service/$q,在那里可以找到有关promise API的完整文档。