sails.js服务中的水线错误实现

由于大多数人知道sails.js框架作为WLError对象抛出错误,所以我希望在我的应用程序中使这一点保持一致。 任何我想在我的服务中提出的错误应该是一个WLError对象与我自己的错误,状态和总结。 有没有人做过这个?

var error = new Error(errorMsg); return error; 

我想要下面的东西…

 var error = new WLError({"status":"Fail", "error": "somethig", "summary": "OOPS!!"}); return error; 

谢谢!

在我的一个适配器中,我使用水线错误


     //根据需要调整相对path
     var WLError = require('../../ sails / node_modules / waterline / lib / waterline / error / WLError');

     processError:function(error){
       var formattedErr = new WLError();
       formattedErr.code ='E_MY_ERROR';
       formattedErr.status = 400;
       formattedErr.reason =错误;
       formattedErr.details =错误;
      返回formattedErr;
     },

此外,我做了恰恰相反,水线错误转换为其他帆错误

在API /响应/ badRequest.js我补充说:


       //如果用户代理需要JSON,则始终以JSON响应
       if(req.wantsJSON){
        尝试{
           //这会像其他风帆错误一样设置水线错误
           //在waterline / error / WLError.js中查看WLError.prototype.toJSON
           var WLResponse = data.toJSON();
          如果(WLResponse.hasOwnProperty('error')&& WLResponse.hasOwnProperty('summary')){
            返回res.jsonx({
              代码:WLResponse.error,
              消息:WLResponse.summary
             });
           } else {
             //不是水线错误
            抛出“NonWLError”;
           }
         catch(e){
          返回res.jsonx(数据);
         }
       }

我做了这个…

我在bootstrap.js中添加如下

 sails.WLError = require('../node_modules/sails/node_modules/waterline/lib/waterline/error/WLError.js'); 

然后在我的代码中不需要做“要求”。 就在线以下的作品。

 error = new sails.WLError(); error.code = "404"; error.status = "Failure"; error.summary = "Invalid Request"; error.details = errorMsg;