Memulai proyek baru dengan perintah 'nest new'. Bekerja dengan baik sampai saya menambahkan file entitas ke dalamnya.
Mendapat kesalahan berikut:
impor {Entity, Column, PrimaryGeneratedColumn} dari 'typeorm';
^^^^^^
SyntaxError: Tidak dapat menggunakan pernyataan impor di luar modul
Apa yang saya lewatkan?
Menambahkan Entitas ke Modul:
import { Module } from '@nestjs/common';
import { BooksController } from './books.controller';
import { BooksService } from './books.service';
import { BookEntity } from './book.entity';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [TypeOrmModule.forFeature([BookEntity])],
controllers: [BooksController],
providers: [BooksService],
})
export class BooksModule {}
app.module.ts:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Connection } from 'typeorm';
import { BooksModule } from './books/books.module';
@Module({
imports: [TypeOrmModule.forRoot()],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
src
direktori Anda ? Jika Anda menggunakan TypeORM, dapatkah Anda menunjukkanTypeOrmModule
impor AndaAppModule
diimports
array 's ? Mungkin ada sesuatu yang salah dengan konfigurasi yang tidak dapat kita lihatJawaban:
Asumsi saya adalah bahwa Anda memiliki
TypeormModule
konfigurasi denganentities
properti yang terlihat seperti ini:atau suka
Kesalahan yang Anda dapatkan adalah karena Anda mencoba mengimpor
ts
file dalamjs
konteks. Selama Anda tidak menggunakan paket web, Anda dapat menggunakan ini sebagai gantinya agar Anda mendapatkan file yang benardi mana
join
diimpor daripath
modul. Sekarang__dirname
akan menyelesaikansrc
ataudist
menemukan masing-masing filets
atau yang diharapkanjs
. beri tahu saya jika masih ada masalah yang terjadi.EDIT 1/10/2020
Di atas menganggap konfigurasi yang dilakukan adalah file yang kompatibel dengan javascript (
.js
atau dalamTypeormModule.forRoot()
parameter yang diteruskan). Jika Anda menggunakanormconfig.json
gantinya, Anda harus menggunakansehingga Anda menggunakan file js yang dikompilasi dan tidak memiliki kesempatan untuk menggunakan file ts dalam kode Anda.
sumber
deno
adalah satu-satunya pelari kode naskah asli.TypeORM
, saat ini menggunakan TypeScript, masih berfungsi denganNode
dan JavaScript runtime. Mungkin perbaikan dapat dilakukan untuk menerimats
file dan mengkompilasinya ke dalam JavaScript di bawah tenda, kemudian menghapusnya sehingga pengguna akhir tidak melihatnya, tetapi itu perlu diangkat sebagai masalah pada repositori git TypeORMSeperti yang dijelaskan Jay McDoniel dalam jawabannya, masalahnya tampaknya adalah pola yang cocok dengan file entitas dalam
ormconfig.json
file: Mungkin file naskah (modul) diimpor dari file javascript (mungkin file naskah skrip yang sebelumnya diubah).Itu harus cukup untuk menghapus
ts
pola gumpalan yang ada diormconfig.json
, sehingga TypeORM hanya akan memuat file javascript. Path ke file entitas harus relatif ke direktori kerja di mana node dieksekusi.sumber
src
mungkin harus diubah untukdist
seperti itulah di mana kode runnable adalah setelah transpiled ke javascript.Dalam dokumentasi TypeORM, saya menemukan bagian spesifik untuk naskah .
Bagian ini mengatakan:
Ini berfungsi dengan konfigurasi file saya:
Kemudian Anda dapat menjalankan perintah generate.
sumber
Anda perlu memiliki sesuatu.module.ts untuk setiap bagian aplikasi Anda. Ini bekerja seperti Angular. Ini adalah pengaturan dengan resolvers dan layanan GraphQL. REST agak berbeda dengan controller. Setiap modul mungkin akan memiliki entitas dan jika GraphQL, projects.schema.graphql.
projects.module.ts
sumber