如何在自定义存储库中获取请求详细信息和表名-回送4?

问题描述 投票:0回答:1

我正在使用LB4,并从BaseRepository extends的自定义DefaultCrudRepository扩展了所有存储库,在此存储库中我没有做任何特别的事情,只是称为super.methods(),一个方法是:

create(entity: DataObject<T>, options?: Options): Promise<T> {
  return super.create(entity, options);
}

现在,无论何时保存,更新或删除记录,我都需要创建一个日志条目。日志条目将如下所示:

{
  tableName: string,
  ip: string,
  browser: string
}

现在,我很困惑如何在存储库中获取表名和请求详细信息。

我的控制器中有@inject(RestBindings.Http.REQUEST) public request: Request,但是我不知道如何使用它,有什么建议吗?

typescript express repository loopback loopback4
1个回答
0
投票

首先从Request导入@loopback/rest

第二,控制器构造函数中的@inject(RestBindings.Http.REQUEST) public request: Request

  • [request.headers["user-agent"]具有浏览器数据。
  • request.ip具有IP。但是请注意,如果您使用自己的反向代理,则必须将此指令proxy_set_header X-Forwarded-For $remote_addr;放入您的nginx配置中。对于apache,请相应地执行。
  • 表名很明显,因为您知道在哪里创建记录。
© www.soinside.com 2019 - 2024. All rights reserved.