在回送之前设置状态代码

时间:2016-12-07 22:43:06

标签: loopback

我继承了一些非常混乱的环回代码,我想知道是否可以返回200以外的状态代码。

例如,我有以下代码:

  PensionsUser.loginView = function (ctx, credentials, cb) {
    var respJSON = util.getresponseTemplate();

    credentials.email = credentials.email.toLowerCase().trim();
    PensionsUser.login(credentials, 'user', function (err, loginResp) {
      if (err) {
        util.addErrorToResponse(err, respJSON, 'NO-PUS-LV-001');
        app.log.error(util.loggingTemplate('PensionsUser', 'loginView', 'NO-PUS-LV-001', credentials.email));
        ctx.res.status = 401;  //does not work
        cb(null, respJSON);
     //etc.

我知道cb(null, respJSON)应该像这样cb(respJSON)返回错误但遗憾的是前端代码依赖于当前返回的JSON,所以我的第一步就是更改状态代码。 / p>

这可能吗?

3 个答案:

答案 0 :(得分:2)

您可以设置自定义错误,例如{error:500,message:" Custom Error"},或者您可以配置" strong-error-handler"在中间件配置文件中。

答案 1 :(得分:0)

对于错误,您可以设置如下状态:

callback({status: 401, message: 'Your error message'});

对于成功状态代码,您已在此处回答:https://stackoverflow.com/a/26942431/1827886

答案 2 :(得分:0)

要根据您自己的要求发送响应代码,您可以使用以下代码:

 "YourModelName"."YourRemoteMethod" = function("YourAcceptArguments", callback) {

      var error = new Error("New password and confirmation do not match");
      error.status = "Enter the resposne code that you want to send";
      // Example => error.status = 400 
      return callback(error);
    };