Prisma / NestJS:错误:找不到模块“src/prisma/prisma.module.js”需要堆栈:

问题描述 投票:0回答:2

我正在使用 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 {}
node.js typescript compilation nestjs prisma
2个回答
1
投票

解决方案很简单,但我在任何地方都找不到。

在此代码中,PrismaModule 导入次数过多。

在 AuthModule 中,我们可以看到 PrismaService 曾经通过

providers: [AuthService, PrismaService]
导入,并且曾经在
imports: [PrismaModule]

中导入到 PrismaModule 中

所以,正确的代码应该是:

auth.module.ts:

@Module({
    imports: [PrismaModule],
    controllers: [AuthController],
    providers: [AuthService]
})

0
投票

如果有人有类似问题

错误:找不到模块...

尝试将绝对链接(通过 baseUrl 映射的 ts)更改为相对链接。 例如,来自

src/database/prisma.service

../../database/prisma.service
© www.soinside.com 2019 - 2024. All rights reserved.