NestJS认证开发报错:未找到EmployeeRepository元数据
NestJS认证功能报错:No metadata for "EmployeeRepository" was found 排查求助
开发NestJS应用的认证功能时,遇到错误「No metadata for "EmployeeRepository" was found」,无法定位问题根源。以下是相关代码及已做的排查动作:
app.module.ts
@Module({ imports: [ AgenciesModule, ActionsModule, AuthModule, TypeOrmModule.forRoot({ type: 'mysql', host: '************', username: '*********', password: '*********', database: '*********', synchronize: true, autoLoadEntities: true, }), EmployeesModule, ], }) export class AppModule {}
auth.service.ts
import { EmployeeRepository } from 'src/employees/entities/employee.repository'; @Injectable() export class AuthService { constructor( @InjectRepository(EmployeeRepository) private employeeRepository: EmployeeRepository, ) {} async validateUser(email: string, password: string): Promise<any> { const user = await this.employeeRepository.findOne({ where: { email, password }, }); // 这段模拟数据在Postman请求时可以正常工作 //const user = { // email: "email", // password: "password", //} if (user && user.email === email && user.password === password) { const { password, ...result } = user; return result; } return null; } }
auth.controller.ts
@Controller('auth') export class AuthController { constructor(private authService: AuthService) {} @Post('login') async login(@Body() body) { return this.authService.login(body.email, body.password); } }
auth.module.ts
@Module({ imports: [TypeOrmModule.forFeature([EmployeeRepository])], controllers: [AuthController], providers: [AuthService, JwtStrategy], exports: [AuthService], }) export class AuthModule {}
employee.repository.ts
import { EntityRepository, Repository } from 'typeorm'; import { Employee } from './employee.entity'; @EntityRepository(Employee) export class EmployeeRepository extends Repository<Employee> {}
已做排查动作
- 确认所有文件的导入路径正确无误
- 更新了相关依赖包
- 参考过相关问题帖子,但未找到有效解决方案
内容的提问来源于stack exchange,提问作者Poahui
相关产品推荐
相关产品推荐

