3 回答

TA貢獻1830條經驗 獲得超3個贊
您可以首先從 ExecutionContext 獲取信息:
? ? import { createParamDecorator, ExecutionContext } from '@nestjs/common';
export const User = createParamDecorator(
? (data: unknown, ctx: ExecutionContext) => {
? ? const request = ctx.switchToHttp().getRequest();
? ? return request.user;
? },
);

TA貢獻1797條經驗 獲得超4個贊
我明白問題出在哪里了。我有一個自定義驗證 PipeTransform,如果 ArgumentMetadata.type 既不是“body”也不是“param”,則返回未定義。所以現在,如果 ArgumentMetadata.type 既不是“body”也不是“param”,我只返回驗證器轉換方法的第一個參數(輸入),這解決了問題。

TA貢獻1802條經驗 獲得超4個贊
請注意,對于那些面臨類似問題的人,我錯過了第一個數據參數,它引發了我的錯誤。
createParamDecorator((ctx: ExecutionContext)
會導致未定義的上下文,而createParamDecorator((data: unknown, ctx: ExecutionContext)
有效。
添加回答
舉報