我正在使用 Prisma 和 NestJS 开发一个项目。
错误:
Error : Cannot find module 'src/prisma/prisma.module.js'
Require stack: - /home/cedric/Bureau/programmation/project_bank/project/dist/auth/auth.module.js
- /home/cedric/Bureau/programmation/project_bank/project/dist/app.module.js
- /home/cedric/Bureau/programmation/project_bank/project/dist/main.js
当我尝试在 PrismaModule 中添加 @Global
装饰器时发生。我直接Ctrl+Z还是报错。
我认为这是一个编译问题,但不知道如何恢复它。
这是我的代码: prisma.module.ts
import { Module } from '@nestjs/common';
import { PrismaService } from './prisma.service';
@Module({
providers: [PrismaService],
exports: [PrismaService],
})
export class PrismaModule {}
prisma.service.ts
import { Test, TestingModule } from '@nestjs/testing';
import { PrismaService } from './prisma.service';
describe('PrismaService', () => {
let service: PrismaService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [PrismaService],
}).compile();
service = module.get<PrismaService>(PrismaService);
});
it('should be defined', () => {
expect(service).toBeDefined();
});
});
我想在其中使用 PrismaModule 的模块:
import { Module } from "@nestjs/common";
import { PrismaModule } from "src/prisma/prisma.module.js";
import { PrismaService } from "src/prisma/prisma.service.js";
import { AuthController } from "./auth.controller.js";
import { AuthService } from "./auth.service.js";
@Module({
imports: [PrismaModule],
controllers: [AuthController],
providers: [AuthService, PrismaService],
})
export class AuthModule {}
我的app.module.ts:
import { CustomersModule } from './customers/customers.module';
import { PrismaModule } from './prisma/prisma.module';
@Module({
imports: [AuthModule, CustomersModule, PrismaModule, ],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
解决方案很简单,但我在任何地方都找不到。
在此代码中,PrismaModule 导入次数过多。
在 AuthModule 中,我们可以看到 PrismaService 曾经通过
providers: [AuthService, PrismaService]
导入,并且曾经在 imports: [PrismaModule]
中导入到 PrismaModule 中
所以,正确的代码应该是:
auth.module.ts:
@Module({
imports: [PrismaModule],
controllers: [AuthController],
providers: [AuthService]
})
如果有人有类似问题
错误:找不到模块...
尝试将绝对链接(通过 baseUrl 映射的 ts)更改为相对链接。 例如,来自
src/database/prisma.service
到
../../database/prisma.service