我正在使用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
,但是我不知道如何使用它,有什么建议吗?
首先从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
,请相应地执行。