nest.js 接收的参数在Controller怎么传给service
时间: 2024-02-05 20:14:25 浏览: 225
基于Vue+Nest.js+MySQL的跨平台开源社区运营管理系统设计与实现.zip
5星 · 资源好评率100%
在 Nest.js 中,Controller 是处理 HTTP 请求的入口点,而 Service 则是用于处理业务逻辑和数据操作的组件。在 Controller 中,可以通过依赖注入的方式将 Service 注入进来,从而实现 Controller 与 Service 的交互。
具体来说,在 Controller 中,可以通过构造函数或者属性装饰器的方式注入 Service。例如,在构造函数中注入:
```typescript
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
```
在上面的例子中,我们通过构造函数将 AppService 注入到 AppController 中,并在 getHello 方法中调用了 AppService 中的 getHello 方法。
接下来,我们需要将 Controller 接收到的参数传给 Service。可以通过调用 Service 中的方法,并将参数传递给它来实现。例如,在 Controller 中接收一个 GET 请求中的 query 参数,并将其传递给 Service:
```typescript
import { Controller, Get, Query } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(@Query('name') name: string): string {
return this.appService.getHello(name);
}
}
```
在上面的例子中,我们使用了 @Query 装饰器来接收 GET 请求中的 query 参数,并将其传递给 AppService 中的 getHello 方法。需要注意的是,Service 中的方法需要定义相应的参数来接收传递过来的值。
阅读全文