【问题标题】:AngularJS Mongoose error handlingAngularJS Mongoose 错误处理
【发布时间】:2014-01-07 05:19:43
【问题描述】:

我已经用 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 会将其解释为查询的响应,但包含意外内容并产生异常?怎么处理?

【问题讨论】:

    标签: node.js angularjs mongodb express mongoose


    【解决方案1】:

    Angular 就像圣诞老人一样,它知道什么时候响应是坏的或好的。有 2 个解决方案,一个解决方案是在每个请求上创建一个错误处理程序。另一种是使用$httpProvider.interceptors 在错误成为单个请求级别的问题之前全局处理错误。

    选项 1

    DBService.query(function (res) {
        scope.data.lists = res;   
    },function(errorResult){
        console.log(errorResult); // <- take a peek in here, find something useful
    });
    

    选项 2

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

    【讨论】:

    • 我忘了$resource下面是$http,promise有成功和错误两种方法。此外,我不熟悉 $q ,更不熟悉拦截器......所以我会采用选项 1。谢谢!
    猜你喜欢
    • 2012-08-05
    • 2012-12-28
    • 2013-09-04
    • 2017-01-11
    • 2012-08-17
    • 2013-07-05
    • 1970-01-01
    • 2013-11-30
    • 2020-10-24
    相关资源
    最近更新 更多