Node.js AngularJS Mongoose错误处理

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));

我用AngularJS构建了一个简单的应用程序。此应用程序的一部分是调用REST服务。为此,我使用猫鼬。一切都很好,但我想更好地处理错误。示例代码可以是:

快递:

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);
        }
    }
}]);