【问题标题】:Loopback: How can we modify the return data of a built in model functionLoopback:我们如何修改内置模型函数的返回数据
【发布时间】:2017-02-02 21:26:40
【问题描述】:

我创建了一个名为 member 的模型,继承自内置模型 User, 但是如何更改登录返回的格式。即,

当前无效登录正在返回

{
  "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 ..."
}

还有成功案例,

即当前的回报是

{
  "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"
}

有没有可能?

【问题讨论】:

    标签: javascript node.js strongloop loopback


    【解决方案1】:

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

    config.json 你需要做的:

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

    还在根/服务器文件夹中创建config.local.js 并在下面添加:

    'use strict';
    
    var errorConverter = require('./middlewares/error-converter');
    
    module.exports = {
      remoting: {
        errorHandler: {
          handler: errorConverter()
        }
      }
    };
    

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

    【讨论】:

    • @SanjayKumarNS 酷,不客气。所以请接受答案
    • 但是在从中间件中删除strong-error-handler时,无法启动服务器:(错误:在“final:after”阶段的中间件“strong-error-handler”没有在main中定义配置)
    • 你能说一下,我们如何处理登录成功的条件,以及这样,是为了改变登录成功的返回格式?
    • @SanjayKumarNS 请告诉我更改登录结果的具体内容
    • @SanjayKumarNS 在该方法的远程挂钩之后添加并更改您想要的内容。启动脚本是最好的地方
    猜你喜欢
    • 2023-03-11
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 2020-07-31
    • 1970-01-01
    相关资源
    最近更新 更多