【问题标题】:Nestjs with prisma cannot find module带有棱镜的Nestjs找不到模块
【发布时间】:2022-07-13 01:32:43
【问题描述】:

我认为这是一个打字稿编译问题,但我仍在学习打字稿。这是一些上下文,我正在使用nestjs、prisma 和vegardit/prisma-generator-nestjs-dto 来创建一些剩余的杂物。我建立了一对多的自我关系,但是当我编译项目时,我得到了这个错误

Cannot find module 'C:/sistema-gestion-riesgo/src/puesto/dto/connect-puesto.dto'
Require stack:
- C:\sistema-gestion-riesgo\dist\puesto\dto\create-puesto.dto.js
- C:\sistema-gestion-riesgo\dist\puesto\puesto.controller.js
- C:\sistema-gestion-riesgo\dist\puesto\puesto.module.js
- C:\sistema-gestion-riesgo\dist\app.module.js
- C:\sistema-gestion-riesgo\dist\main.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.type (C:\sistema-gestion-riesgo\dist\puesto\dto\create-puesto.dto.js:15:57)
    at SchemaObjectFactory.mergePropertyWithMetadata (C:\sistema-gestion-riesgo\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:116:38)
    at C:\sistema-gestion-riesgo\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:79:35
    at Array.map (<anonymous>)
    at SchemaObjectFactory.extractPropertiesFromType (C:\sistema-gestion-riesgo\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:78:52)
    at SchemaObjectFactory.exploreModelSchema (C:\sistema-gestion-riesgo\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:92:41) 

这是我正在使用的 schema.prisma 及其配置。

generator nestjsDto {
  provider                        = "prisma-generator-nestjs-dto"
  exportRelationModifierClasses   = "true"
  reExport                        = "true"
  createDtoPrefix                 = "Create"
  updateDtoPrefix                 = "Update"
  dtoSuffix                       = "Dto"
  entityPrefix                    = ""
  entitySuffix                    = ""
  fileNamingStyle                 = "kebab"
  output                          = "../src"
  outputToNestJsResourceStructure = "true"
}

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Puesto {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  nombre String
  /// @DtoCreateOptional
  /// @DtoUpdateOptional
  /// @DtoRelationCanConnectOnCreate
  /// @DtoRelationCanConnectOnUpdate
  jefeInmediato   Puesto?  @relation("JefeEmpleados", fields: [jefeInmediatoId], references: [id])
  jefeInmediatoId Int?
  personalAcargo  Puesto[] @relation("JefeEmpleados")
  @@map("puestos")
}

最后这就是 DTO 的生成方式。

connect-pruesto.dto.ts

export class ConnectPuestoDto {
  id: number;
}

create-puesto.dto.ts

import {ApiExtraModels} from '@nestjs/swagger'
import {ConnectPuestoDto} from './connect-puesto.dto'

export class CreatePuestoJefeInmediatoRelationInputDto {
    connect: ConnectPuestoDto;
  }

@ApiExtraModels(ConnectPuestoDto,CreatePuestoJefeInmediatoRelationInputDto)
export class CreatePuestoDto {
  nombre: string;
jefeInmediato?: CreatePuestoJefeInmediatoRelationInputDto;
}

最后,index.ts

export * from './connect-puesto.dto';
export * from './create-puesto.dto';
export * from './update-puesto.dto';

【问题讨论】:

  • 我遇到了同样的问题。在我的例子中,它是一个有两个数据库和两个棱镜模式的项目。
  • @LuizMitidiero 很抱歉,我没有找到问题的答案:C

标签: typescript module nestjs dto prisma2


【解决方案1】:

可能有点晚了,但为了将来参考,我刚才遇到了同样的问题。通过从模式模型中删除 cmets 解决了这个问题,重新编译后一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 2021-01-18
    • 2021-08-12
    • 2012-01-04
    • 2012-01-05
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多