[英]How to Inject plain Service/Provider in nest.js
我在 nest.js 中創建了一個普通的 typeScript 類。 JwtTokenService.js
// JwtTokenService.js
import { Injectable, Optional } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { JwtPayload } from '../modules/auth/interface/jwt-payload.interface';
@Injectable()
export class JwtTokenService {
constructor(private readonly jwtService: JwtService) {}
async generateJWT(payload: object): Promise<string> {
payload['type'] = 'access_token';
const token = this.jwtService.sign({ payload });
return token;
}
}
現在我如何在任何控制器中使用它。 像用戶,身份驗證和其他。
在 Nest 應用模塊中注冊服務:
import { Module } from '@nestjs/common';
import { YourController } from './path-to/your.controller';
import { JwtTokenService } from './path-to/JwtTokenService.service';
@Module({
controllers: [YourController],
providers: [JwtTokenService],
})
export class ApplicationModule {}
然后你可以在你的控制器中使用它:
import { Controller, Get, Post, Body } from '@nestjs/common';
import { JwtTokenService } from './path-to/JwtTokenService.service';
@Controller('your')
export class YourController {
constructor(private readonly jwtTokenService: JwtTokenService) {}
@Get()
async get() {
// use `this.jwtTokenService`
...
}
}
Nest 使用DependencyInjection 模式向控制器提供服務,這就是為什么您需要在應用程序模塊中聲明服務是如何提供的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.