mysql - NestJS typeorm - tidak bisa membuat entitas


Saya sedang mencoba menambahkan entitas Idea ke TypeOrm saya (dikonfigurasi ke mysql), dan sepertinya impor tidak mau berfungsi. Dengan file yang ditambahkan, typeorm tidak berhasil diinisialisasi.

Saya telah menginstal ulang paket typeorm, dan saya tidak tahu harus mulai debug dari mana. Saya sedang mengikuti tutorial (https://www.youtube.com/watch?v=EHlhvy-fh90), di mana kesalahan ini TIDAK muncul. Saya menyimpangnya dengan mengganti database postgresql dengan mysql yang dijalankan melalui docker.

Saya mengalami beberapa masalah dalam mengatur koneksi node -> mysql, akhirnya memilih untuk menjalankan mysql 5 dalam docker untuk mengatasi kesalahan otentikasi (mengikuti jawaban ini: https://stackoverflow.com/a/50167617/9043642). Tanpa file idea.entity.ts, koneksi berjalan lancar (dengan orm), jadi saya tidak mengharapkan akan ada masalah dengan database.

Inilah tampilan file idea.entity.ts saya. File ini secara efektif mengikuti contoh yang ditemukan di dokumentasi (https://docs.nestjs.com/techniques/database). Disalin dan ditempel, contoh di dokumentasi tetap memberi kesalahan yang sama.

import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
} from 'typeorm';

@Entity()
export class IdeaEntity {
  @PrimaryGeneratedColumn('uuid') id:string;

  @CreateDateColumn() created:Date;

  @Column('text') idea:string;

  @Column('text') description:string;
}

Saya mendapatkan kesalahan berikut saat menjalankan

[Nest] 14034   - 07/02/2019, 1:00 PM   [TypeOrmModule] Unable to connect to the database. Retrying (1)... +19ms
[0] /home/miko/node/ideas/src/idea/idea.entity.ts:2
[0] import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
[0]        ^
[0] 
[0] SyntaxError: Unexpected token {
[0]     at Module._compile (internal/modules/cjs/loader.js:718:23)
[0]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
[0]     at Module.load (internal/modules/cjs/loader.js:641:32)
[0]     at Function.Module._load (internal/modules/cjs/loader.js:556:12)
[0]     at Module.require (internal/modules/cjs/loader.js:681:19)
[0]     at require (internal/modules/cjs/helpers.js:16:16)
[0]     at Function.PlatformTools.load (/home/miko/node/ideas/node_modules/typeorm/platform/PlatformTools.js:107:28)
[0]     at /home/miko/node/ideas/node_modules/typeorm/util/DirectoryExportedClassesLoader.js:30:69
[0]     at Array.map (<anonymous>)
[0]     at Object.importClassesFromDirectories (/home/miko/node/ideas/node_modules/typeorm/util/DirectoryExportedClassesLoader.js:30:10)

Perlu dicatat, koneksi database gagal. Lagi, tanpa adanya entitas ide, koneksi berjalan baik. Hasil yang diharapkan adalah [InstanceLoader] TypeOrmCoreModule dependencies initialized. Bagaimana saya bisa berhasil membuat entitas seperti ini?

Jawaban #1

Akhirnya menjadi file ormconfig.json yang berantakan. Pastikan mengikuti format sesuai dengan: https://github.com/nestjs/nest/blob/master/integration/typeorm/ormconfig.json

Jawaban #2

Tambahkan jalur entitas sebagai folder dist Anda

{
    "type":"postgres",
    "host":"localhost",
    "port":"5432",
    "username":process.env.USERNAME,
    "password":process.env.PASSWORD,
    "database":process.env.DATABASE,
    "synchronize":true,
    "logging":true,
    "entities": ["dist/**/**.entity{.ts,.js}"]    
}