Loopback:我们如何修改内置模型函数的 return 数据

Loopback: How can we modify the return data of a built in model function

我创建了一个名为 member 的模型,继承自内置模型 User, 但是我怎样才能改变登录的格式return。即,

目前无效登录 returning like

{
  "error": {
    "statusCode": 401,
    "name": "Error",
    "message": "login failed",
    "code": "LOGIN_FAILED",
    "stack": "Error: login failed\n ..."
  }
}

我想改成这样,

{
    "code": 401,
    "name": "Error",
    "message": "login failed",
    "code": "LOGIN_FAILED",
    "stack": "Error: login failed\n ..."
}

另外,成功案例也是如此,

即当前return是

{
  "id": "P1jAavmCRbiYB1gYaE2snj3I6BayIYOCJ7HsTLeF1bezlEGVAUzjwdxKB5QFH9Vu",
  "ttl": 1209600,
  "created": "2017-02-02T13:19:05.709Z",
  "userId": "5885b186db6df92d3ada7777"
}

我想改成这样,

{
  "code": 200,
  "name": "Success",
  "token": "P1jAavmCRbiYB1gYaE2snj3I6BayIYOCJ7HsTLeF1bezlEGVAUzjwdxKB5QFH9Vu",
  "ttl": 1209600,
  "created": "2017-02-02T13:19:05.709Z",
  "userID": "5885b186db6df92d3ada7777"
}

可不可以?

您需要从中间件中删除 strong-error-handler 并添加您的自定义错误处理程序,例如 this

config.json 中你需要做:

...
"remoting" {
  ...
  "handleErrors": false
  ...
}
...

同时在 root/sever 文件夹中创建 config.local.js 并在下面添加:

'use strict';

var errorConverter = require('./middlewares/error-converter');

module.exports = {
  remoting: {
    errorHandler: {
      handler: errorConverter()
    }
  }
};

error-converter.js 在 middleare 文件夹(或任何其他地方)是自定义错误 hadling middleare