通过config.json文件注册时,导入语句破坏了typeorm实体

JavaScript KoaJS

老丝

2020-04-07

按照官方文档,我创建了小型koa / typeorm / postgres应用。当我createConnection与config 一起使用时,将实体导入同一文件中,应用运行正常,但是typeorm cli无法找到配置文件,因此我尝试将config移至“ ormconfig.json”。现在我得到这个错误:

SyntaxError: Cannot use import statement outside a module

看来typeorm无法使用es6功能。

我的ormconfig.json

{
  "type": "postgres",
  "host": "localhost",
  "port": 5432,
  "username": ****,
  "password": ****,
  "database": ****,
  "synchronize": true,
  "entities": ["src/entity/**/*.ts"],
  "migrations": ["src/migration/**/*.ts"],
  "subscribers": ["src/subscriber/**/*.ts"],
  "cli": {
    "entitiesDir": "src/entity",
    "migrationsDir": "src/migration",
    "subscribersDir": "src/subscriber"
  }
}

我的tsconfig.json

{
  "compilerOptions": {
    "lib": ["es5", "es6"],
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "outDir": "./dist",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
  },
  "exclude": ["node_modules"]
}

出现错误的文件:

import {
  BaseEntity,
  Column,
  Entity,
  PrimaryGeneratedColumn,
  CreateDateColumn,
  ManyToOne
} from 'typeorm';
import { IsIn, IsPositive, IsNotEmpty } from 'class-validator';

import { LOAN_TYPE } from '../consts';
import { User } from './user';

@Entity('loans')
export class Loan extends BaseEntity {
  @PrimaryGeneratedColumn()
  public id: number;

  @CreateDateColumn({ type: 'timestamp' })
  public createdAt: Date;

  @Column()
  @IsNotEmpty()
  @IsPositive()
  public amount: number;

  @Column({ type: 'enum', enum: LOAN_TYPE })
  @IsNotEmpty()
  @IsIn(Object.values(LOAN_TYPE))
  public type: LOAN_TYPE;

  @Column({ default: false })
  public approvalStatus: boolean;

  @ManyToOne(type => User, user => user.loans)
  @IsNotEmpty()
  public user: User;
}

export default Loan;

第4153篇《通过config.json文件注册时,导入语句破坏了typeorm实体》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
番长猴子 2020.04.07
  1. 请确保您有"module": "commonjs""compilerOptions"tsconfig.json
  2. 使用ts-node运行typeorm cli: ts-node ./node_modules/typeorm/cli.js

查看文件

小小 2020.04.07

尝试运行CLI或运行应用程序时出现错误?

您可能需要更改"entities"的条目ormconfig.json["dist/entity/**/*.js"]"entitiesDir""dist/entity"

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android