我创建了基本的 AuthGuard,但无法注入 TokenService。我收到此错误:
错误:Nest 无法解析 AuthGuard (?) 的依赖关系。请验证 [0] 参数在当前上下文中是否可用。
app.module.ts:
@Module({
modules: [
WorkModule,
],
components: [TokenService],
})
export class ApplicationModule { }
auth.guard.ts:
@Guard()
export class AuthGuard implements CanActivate {
constructor(
private readonly tokenService: TokenService,
) { }
public canActivate(dataOrRequest, context: ExecutionContext): boolean | Promise<boolean> | Observable<boolean> {
return true;
}
}
工作模块.ts:
@Module({
controllers: [WorkController],
components: [WorkService],
})
export class WorkModule { }
更新,work.service.ts:
import { Component, Inject, HttpStatus, HttpException } from '@nestjs/common';
const dataStore = require('nedb');
const workDB = new dataStore({ filename: '../db/work.db', autoload: true });
import * as moment from 'moment';
import { WorkDay, WorkDayDTO } from './work.model';
import { WorkHelpers } from './work.helpers';
@Component()
export class WorkService {
public async getWorkGraphic(month: number, year: number) {
return new Promise((resolve, reject) => {
// logic here
});
}
public async addOrUpdateWorkDay(day: WorkDayDTO) {
return new Promise((resolve, reject) => {
// logic here
});
}
public async removeWorkDay(workDayId: string) {
return new Promise((resolve, reject) => {
// logic here
});
}
}
但是使用此配置,一切正常:
@Module({
controllers: [
WorkController,
],
components: [TokenService, WorkService],
})
export class ApplicationModule { }
究竟是什么导致了这个错误,我怎样才能让它与第一个解决方案(模块)一起工作?