使用express访问请求范围内经过身份验证的用户的信息

使用express访问请求范围内经过身份验证的用户的信息,express,typeorm,Express,Typeorm,我正在将Express与TypeForm一起使用,目前我遇到以下情况: 在插入或更新记录之前,我始终希望将用户名设置为当前记录,以保留上次更新此记录的信息 使用TypeForm,这可以通过使用订阅者轻松完成: @EventSubscriber() export class Subscriber implements EntitySubscriberInterface { beforeUpdate(event: UpdateEvent<any>) { const

我正在将Express与TypeForm一起使用,目前我遇到以下情况:

在插入或更新记录之前,我始终希望将用户名设置为当前记录,以保留上次更新此记录的信息

使用TypeForm,这可以通过使用订阅者轻松完成:

@EventSubscriber()
export class Subscriber implements EntitySubscriberInterface {
    beforeUpdate(event: UpdateEvent<any>) {
        const entity = event.entity;
        if(entity instanceof Base) {
            entity.lastUpdatedBy = 'username'; // TODO
        }
    }
}
@EventSubscriber()
导出类订阅服务器实现EntitySubscriberInterface{
更新前(事件:UpdateEvent)
  • 我也可以将用户信息附加到updateEntity方法中,但是我必须始终显式地添加

  • 还有其他选项吗?

    我使用以下npm包将用户保存在我的请求范围内:


    此软件包不适用于我,因为async/await似乎不受支持:继续本地存储。

    您可以使用任何保存选项的attAttribute数据类型

    @Put('/entity')
    public updateEntity(@CurrentUser({required: true}) user: User, @Body enity: Entity): Promise<Entity> {
        Log.info('User successfully authenticated: ' + user)
        return this.manager.update(entity, {data: user});
    }
    
    @Put('/entity')
    public updateEntity(@CurrentUser({required: true}) user: User, @Body enity: Entity): Promise<Entity> {
        Log.info('User successfully authenticated: ' + user)
        return this.manager.update(entity, {data: user});
    }
    
    event.queryRunner.data