nestjs 总是很好用一个守卫?

nestjs is always good to use a guard?

我正在使用 nestjs 做一个项目。

做项目的时候很好奇guard的使用

如果我在登录时使用guard,我觉得是ID错误还是密码错误很难反馈。 我想就可能的错误给出各种信息。

所以我尝试在不使用guard的情况下通过代码进行防御性编程。 在这种情况下不使用 guard 可以吗? 不知道用guard是不是一直都好

我搜索了不使用guard的nestjs,没找到答案

这可能是一个简单的问题,但我希望你明白这对我来说是一个大问题。 谢谢。

当然不一定要用到guards,但是这些helper的功能让我们的操作更加简单。守卫的第一个目的是捕捉优先级错误,如果有想捕捉错误之前的情况,不建议使用守卫anyway.The例子

 @Roles(UserRoles.Admin)
 @UseGuards(AuthGuard("jwt"),RolesGuard)
 async getUser(@Param('userId') userId:string): Promise<Object | User> {   // Return Users by name
    const user = await this.userService.getUserById(userId)
    if(!user) return {msg:"User not found",status:"error"};
    return user 
  }

我需要在其他错误之前捕获的first thing是用户的角色以及她是否登录。我们可以认为这是一个priority。然后我使用了我需要捕获的错误inside 函数。一般来说,如果有一些情况需要捕获它们,我们更喜欢使用守卫first.