在遵循Nest.js身份验证指南(https://docs.nestjs.com/techniques/authentication)时,我对登录用户的访问有疑问。我使用mongoose作为数据库驱动程序,所有数据都保存到MongoDB(以及用户数据)中。我想在数据库中保存或更新的每个文档上都具有“ createdBy”和“ updatedBy”字段。
这可以通过在定义架构时在schema.pre('save',function(){})回调期间添加它们来完成。但是我无法访问执行保存操作的当前用户。请求通过jwt auth保护后,当前登录的用户将保存在请求中。
如何在schema.pre('save')回调点锁定该用户?
答案 0 :(得分:0)
您可以创建一个新的用户装饰器来完成所需的工作。
import { createParamDecorator } from '@nestjs/common';
export const User = createParamDecorator((data, req) => req.user);
然后在控制器中,您可以像下面的参数一样使用它
@Get()
async getAll(@User() user: UserModel): Promise<Client[]> {
return this.clientService.getAll(user._id);
}