如何使用angularjs处理服务器端错误。我看到了一些解决方案,比如How to properly handle server side errors?,但它们并不适合我的需要/也许我需要改变我的失败行为。请注意,我正在处理服务器端的路由。
我的问题是,在服务器端,我运行了几个mongo
查询,我将返回到我的路由。请注意,这些查询也可能会生成自定义错误(例如字段的长度不合适)。 E.g:
服务器端
ingredientController
controller.getIngredient = function(cb) {
Ingredient.findOne({},cb)
}
在我的路由处理程序中,我调用了这个函数:
function(req, res) {
ingredientController.getIngredient(function(err, data) {
if (err)
res.json({
error: 1
})
else
res.json({
error: 0,
data: 'success'
})
})
}
请注意,json中也可能包含错误消息。
客户端
productServices.getIngredient()
.success(function(result) {
//error should be handled here e.g. result.error === 1
$scope.ingredient = result.data
})
.error(function(err) {
console.log('error ' + err)
})
我做得对吗?如果是,那么我应该如何向用户提供一些反馈。
答案 0 :(得分:1)
一种解决方案是创建一个显示错误消息的服务和指令。在主模板中加载指令,然后使用该服务进行更新。
另一种选择是使用angular-growl库:
angular.module('MyModule').service(
'MyService',
function (growl) {
this.getDatabaseResult = function () {
getResult().then(
function (result) {
growl.addSuccessMessage('Success!');
},
function (error) {
growl.addErrorMessage('Get Database Result Error: ' + error);
}
);
}
}
);