我在用 typeorm 编译 Nestjs 时出错

Posted

技术标签:

【中文标题】我在用 typeorm 编译 Nestjs 时出错【英文标题】:I got an error at compile Nestjs with typeorm 【发布时间】:2021-08-21 23:28:28 【问题描述】:

将 entity.ts 添加到项目中时出现错误

这里是ts文件:

import  Column, Entity, PrimaryGeneratedColumn  from "typeorm";


@Entity('Usuario')
export class UsuarioIdentity

    @PrimaryGeneratedColumn() id: number;

    @Column('text') username: string;

    @Column('text') password: string;

我的 ormconfig:


    "type": "mysql",
    "host": "localhost",
    "port": "3306",
    "username": "root",
    "password": "password",
    "database": "blogdb",
    "synchronize": true,
    "logging": true,
    "entities": ["src/Entidades/*.entity.ts,.js", "dist/Entidades/*.entity.ts,.js"]

错误:

[Nest] 21736   - 2021-06-03 3:04:09 PM   [NestFactory] Starting Nest application...
[Nest] 21736   - 2021-06-03 3:04:09 PM   [InstanceLoader] TypeOrmModule dependencies initialized >+148ms
[Nest] 21736   - 2021-06-03 3:04:09 PM   [InstanceLoader] AppModule dependencies initialized +2ms
[Nest] 21736   - 2021-06-03 3:04:09 PM   [TypeOrmModule] Unable to connect to the database. 
Retrying (1)... +21ms
import  Column, Entity, PrimaryGeneratedColumn  from "typeorm";
   ^

SyntaxError: Unexpected token 
    at Module._compile (internal/modules/cjs/loader.js:721:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at E:\Proyectos_ejemplos\React- 
NestJS\Back2\node_modules\typeorm\util\DirectoryExportedClassesLoader.js:42:39
    at Array.map (<anonymous>)
    at Object.importClassesFromDirectories (E:\Proyectos_ejemplos\React- 
NestJS\Back2\node_modules\typeorm\util\DirectoryExportedClassesLoader.js:42:10)

如果我评论实体或删除它,一切正常。 我正在使用 NestJS 7.6.15 和 typeorm 0.2.34

请帮帮我:D

更新

这是我的 tsconfig,我想应该是 outDir


  "compilerOptions": 
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true
  

【问题讨论】:

您使用哪个命令来启动应用程序?顺便说一句,请向我们展示您的 tsconfig 文件 我使用 'npm run start' 并且我刚刚添加了我的 tsconfig 【参考方案1】:

尝试将 ORM 配置文件中的 entities 更改为:

"entities": ["dist/Entidades/*.entity.ts,.js"]

【讨论】:

以上是关于我在用 typeorm 编译 Nestjs 时出错的主要内容,如果未能解决你的问题,请参考以下文章

播种时NestJS中的TypeOrm:RepositoryNotFoundError

错误:使用 Nestjs + Graphql + Typeorm 时无法确定 GraphQL 输入类型

TypeError:存储库方法不是函数(NestJS / TypeORM)

NestJS、PortsgreSQL 和 TypeORM - 迁移运行不正常

运行nestjs应用程序时typeorm迁移中的“不能在模块外使用import语句”

使用 NestJS 和 TypeORM 为项目生成迁移文件