在 NestJS 中,参数注释不适用于控制器
In NestJS, param annotation is not working with controller
我正在使用 NestJS
进行一个简单的项目。
我来这里寻求帮助是因为我在处理分离 controller
和 service
的项目时遇到了问题。
我准备从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')
我正在使用 NestJS
进行一个简单的项目。
我来这里寻求帮助是因为我在处理分离 controller
和 service
的项目时遇到了问题。
我准备从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')