gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:45 26 4
gpt4 key购买 nike

由于大多数人都知道 sails.js 框架会抛出 WLError 对象错误,因此我希望在我的应用程序中保持这一点一致。我想在我的服务中提出的任何错误都应该是一个带有我自己的错误、状态和摘要的 WLError 对象。有人这样做过吗?

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

我想要像下面这样的东西......

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

谢谢!

最佳答案

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

    // Adjust the relative path as needed    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 = error;      formattedErr.details = error;      return formattedErr;    },

我也做了相反的事情,将水线错误转换为看起来像其他 sails 错误

在 api/responses/badRequest.js 中我添加了:

      // If the user-agent wants JSON, always respond with JSON      if (req.wantsJSON) {        try {          // This formats waterline errors like other sails errors          // See WLError.prototype.toJSON in waterline/error/WLError.js          var WLResponse = data.toJSON();          if(WLResponse.hasOwnProperty('error') && WLResponse.hasOwnProperty('summary')) {            return res.jsonx({              code: WLResponse.error,              message: WLResponse.summary            });          } else {            // Not a waterline error            throw 'NonWLError';          }        } catch (e) {          return res.jsonx(data);        }      }

关于node.js - sails.js 服务中的水线错误实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32600234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com