Node.js AngularJS Mongoose错误处理
我用AngularJS构建了一个简单的应用程序。此应用程序的一部分是调用REST服务。为此,我使用猫鼬。一切都很好,但我想更好地处理错误。示例代码可以是: 快递:Node.js AngularJS Mongoose错误处理,node.js,angularjs,mongodb,express,mongoose,Node.js,Angularjs,Mongodb,Express,Mongoose,我用AngularJS构建了一个简单的应用程序。此应用程序的一部分是调用REST服务。为此,我使用猫鼬。一切都很好,但我想更好地处理错误。示例代码可以是: 快递: DBCollection.find({}, function (err, tuples) { if (err) { console.log('Error!'); } res.send(JSON.stringify(tuples));
DBCollection.find({}, function (err, tuples) {
if (err) {
console.log('Error!');
}
res.send(JSON.stringify(tuples));
});
AngularJS:
DBService.query(function (res) {
$scope.data.lists = res;
});
我面临的问题如下。假设我在mongodb服务器端出现错误。我有一个错误,所以我把它记录在控制台上,然后呢?angularjs/前端会发生什么?如果我将错误作为http响应发送,我想angular会将其作为查询的响应进行解释,但会包含意外的内容并产生异常?如何处理?Angular就像圣诞老人一样,它知道反应是好是坏。有两种解决方案,一种是在每个请求上创建一个错误处理程序。另一种方法是使用
$httpProvider.interceptors
在错误成为单个请求级别的问题之前对其进行全局处理
选项1
DBService.query(function (res) {
scope.data.lists = res;
},function(errorResult){
console.log(errorResult); // <- take a peek in here, find something useful
});
DBService.query(函数(res){
scope.data.lists=res;
},函数(错误结果){
console.log(errorResult);//我忘了$resource下面是$http,promise有两种方法success和error。此外,我不熟悉$q,更不熟悉拦截器……所以我会采用选项1。谢谢!
$httpProvider.interceptors.push(['$q',function($q) {
return {
'responseError': function(rejection) {
console.log(rejection); // <- take a peek in here, find something useful
return $q.reject(rejection);
}
}
}]);