我正在尝试从Request object
中的Validation Pipe
内部访问nestjs
为了验证某些字段的唯一性,我需要随ID/UUID
请求提供的PUT/PATCH
参数(在数据结构本身中不可用)
有什么主意吗?
答案 0 :(得分:0)
当前,根本无法在pipe
中访问请求对象。如果您需要此请求,则可以使用guard或interceptor。
如果您正在验证唯一性,那么这听起来像是业务逻辑的一部分,而不是其他任何事情,因此我将其放在服务中并在那里处理对数据库的查询。只是我的两分钱。
在学习了有关框架整体工作方式的更多信息之后,从技术上讲,可以将整个请求对象放在管道中。有两种解决方法。
使管道@Injectable({ scope: Scope.REQUEST })
成为request scoped。最终将在每个请求上创建一个新管道,但是,嘿,如果那是您的一杯茶,那就太好了。
使custom parameter decorator成为自定义装饰器,将它们按原样完全传递到管道中。请注意,如果ValidationPipe
是在类,方法级别上全局绑定的,那么这可能会影响new DefaultDirectedGraph<GraphNode,StandardFieldConnKeyEdge>(StandardFieldConnKeyEdge.class) {
的工作方式。