Tym*_*iev 5 dependency-injection node.js typescript nestjs
我想了解如何通过 DI 在 Nestjs 中导入第 3 方库。所以,我有一堂课AuthService
:
export class AuthService {
constructor(
@Inject(constants.JWT) private jsonWebToken: any,
){}
....
}
Run Code Online (Sandbox Code Playgroud)
智威汤逊提供商:
import * as jwt from 'jsonwebtoken';
import {Module} from '@nestjs/common';
import constants from '../../../constants';
const jwtProvider = {
provide: constants.JWT,
useValue: jwt,
};
@Module({
components: [jwtProvider],
})
export class JWTProvider {}
Run Code Online (Sandbox Code Playgroud)
库模块:
import { Module } from '@nestjs/common';
import {BcryptProvider} from './bcrypt/bcrypt.provider';
import {JWTProvider} from './jsonwebtoken/jwt.provider';
@Module({
components: [
BcryptProvider,
JWTProvider,
],
controllers: [],
exports: [
BcryptProvider,
JWTProvider,
],
})
export class LibrariesModule{
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Error: Nest can't resolve dependencies of the AuthService (?). Please verify whether [0] argument is available in the current context.
at Injector.<anonymous> (D:\Learning\nest\project\node_modules\@nestjs\core\injector\injector.js:156:23)
at Generator.next (<anonymous>)
at fulfilled (D:\Learning\nest\project\node_modules\@nestjs\core\injector\injector.js:4:58)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
Run Code Online (Sandbox Code Playgroud)
此外,我想听听一些关于不在变量any
中使用类型的建议jsonWebToken
。
魔鬼在于细节。您可以将其他模块“导入”到 AuthModule 中,如下所示:
@Module({
modules: [LibrariesModule], // <= added this line
components: [AuthService, JwtStrategy],
controllers: [],
})
export class AuthModule {
}
Run Code Online (Sandbox Code Playgroud)
来源:这里
第二个问题仍然悬而未决。
归档时间: |
|
查看次数: |
2732 次 |
最近记录: |