热门
join now

零基础入门NestJS(六) 使用中间件和管道

编程相关10个月前更新 云程
89 0 0

在 Nest.js 中,中间件是可以在请求和响应之间执行的函数。中间件可以用于处理请求、验证身份、记录日志等等。Nest.js 内置了多种中间件,例如 CORS 中间件、Helmet 中间件等等。可以使用 `app.use()` 方法在应用程序中注册中间件。例如,要在应用程序中注册 CORS 中间件,可以添加以下代码:

“`typescript
import { NestFactory } from ‘@nestjs/core’;
import { AppModule } from ‘./app.module’;
import { cors } from ‘cors’;

async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(cors());
await app.listen(3000);
}
bootstrap();
“`

上面的代码中,`cors()` 函数创建了一个 CORS 中间件,`app.use()` 方法将该中间件注册到应用程序中。

使用管道。

在 Nest.js 中,管道是可以对输入数据进行验证、转换、过滤等操作的类。管道可以用于验证用户输入、转换请求数据、过滤响应数据等等。可以使用 `@UsePipes()` 装饰器将管道应用到控制器方法或者服务方法中。例如,要在 `cats` 控制器中应用一个验证管道,可以添加以下代码:

“`typescript
import { Controller, Get, Post, Body, UsePipes, ValidationPipe } from ‘@nestjs/common’;
import { CatsService } from ‘./cats.service’;
import { CreateCatDto } from ‘./dto/create-cat.dto’;
import { Cat } from ‘./interfaces/cat.interface’;

@Controller(‘cats’)
export class CatsController {
constructor(private readonly catsService: CatsService) {}

@Post()
@UsePipes(new ValidationPipe())
async create(@Body() createCatDto: CreateCatDto): Promise {
return this.catsService.create(createCatDto);
}

@Get()
async findAll(): Promise {
return this.catsService.findAll();
}
}
“`

上面的代码中,`@UsePipes(new ValidationPipe())` 装饰器将 `ValidationPipe` 管道应用到 `create()` 方法中,`create()` 方法使用 `CreateCatDto` 数据传输对象来验证用户输入数据。

零基础入门NestJS(六) 使用中间件和管道

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...

葫芦芥子导航博客停止运营以及出售通知

本站即日起不再更新新内容,且出售此域名包含:WordPress主题:子比主题正版三个域名授权(官方售价599)、一为导航主题三个域名授权(官方售价1197)以上内容带域名(网站数据)打包出售,售价1288如需单独购买以上内容,请联系QQ:779259529详情请看:https://qcodes.cn/bulletin/3232.html