在 NestJS 中,参数注释不适用于控制器

In NestJS, param annotation is not working with controller

我正在使用 NestJS 进行一个简单的项目。

我来这里寻求帮助是因为我在处理分离 controllerservice 的项目时遇到了问题。

我准备从controller获取Get方法的path value交给service.

在此过程中,controller设置如下。

import { Controller, Get, Param, Post, Query } from '@nestjs/common';
import { AppService } from 'src/app.service.ts'

@Controller('app')
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get(':vendor/art/:artId')
  findOneByVenderAndUid(
    @Param('vender') vender: string,
    @Param('artId') artId: string,
  ) {
    return this.appService.findOneByVenderAndUid(vender, artId);
  }
}

此外,全局管道在main.ts中设置如下。

import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  app.useGlobalPipes(
    new ValidationPipe({
      whitelist: true,
      forbidNonWhitelisted: true,
      transformOptions: {
        enableImplicitConversion: true,
      },
    }),
  );
  await app.listen(3000);
}
bootstrap();

但是,当我将从服务接收到的路径值输出到控制台时,它显示为未定义且无法使用。

我实现的部分有问题吗?

@Param() 中的错字。传递给注释的字符串必须与 url 中使用的字符串相匹配。在这种情况下 :vendor 不匹配 @Param('vender')