Rozpoczął nowy projekt za pomocą polecenia „nest new”. Działa dobrze, dopóki nie dodam do niego pliku encji.
Wystąpił następujący błąd:
import {Entity, Column, PrimaryGeneratedColumn} z 'typeorm';
^^^^^^
Błąd składni: nie można użyć instrukcji importu poza modułem
Za czym tęsknię
Dodawanie jednostki do modułu:
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
katalogu? Jeśli używasz TypeORM, można pokazać swójTypeOrmModule
import wAppModule
„simports
tablicy? Może być coś nie tak z konfiguracją, której nie widzimyOdpowiedzi:
Zakładam, że masz
TypeormModule
konfigurację zentities
właściwością, która wygląda następująco:lub jak
Występujący błąd polega na tym, że próbujesz zaimportować
ts
plik wjs
kontekście. Tak długo, jak nie używasz webpacka, możesz użyć tego zamiast tego, aby uzyskać poprawne plikigdzie
join
jest importowany zpath
modułu. Teraz__dirname
rozwiąże sięsrc
lubdist
, a następnie znaleźć oczekiwanyts
lubjs
plik odpowiednio. daj mi znać, jeśli nadal występuje problem.EDYCJA 1/10/2020
Powyżej zakłada się, że konfiguracja jest zakończona, jest to plik zgodny z javascript (
.js
lubTypeormModule.forRoot()
przekazane parametry). Jeśli używaszormconfig.json
zamiast tego, powinieneś użyćdzięki czemu używasz skompilowanych plików js i nie masz szans na użycie plików ts w kodzie.
źródło
deno
jest jedynym rodzimym programem uruchamiającym kod maszynowy.TypeORM
, podczas gdy używa Typescript, nadal działa zNode
i środowiskiem wykonawczym JavaScript. Być może można wprowadzić ulepszenia, aby akceptowaćts
pliki i kompilować je w JavaScript pod maską, a następnie usunąć je, aby użytkownik końcowy ich nie widział, ale to musiałoby zostać podniesione jako problem w repozytorium git TypeORMJak wyjaśnił Jay McDoniel w swojej odpowiedzi, problemem wydaje się być dopasowanie wzorców plików encji w
ormconfig.json
pliku: prawdopodobnie plik maszynopisu (moduł) jest importowany z pliku javascript (prawdopodobnie wcześniej transpilowanego pliku maszynopisu).Wystarczy usunąć istniejący
ts
wzorzecormconfig.json
globalny w , aby TypeORM ładował tylko pliki javascript. Ścieżka do plików encji powinna być względna do katalogu roboczego, w którym wykonywany jest węzeł.źródło
src
Prawdopodobnie powinien być zmienionydist
tak, że tam kod uruchamialny jest po transpiled do javascript.W dokumentacji TypeORM znalazłem konkretną sekcję dotyczącą maszynopisu .
Ta sekcja mówi:
Działa to z moją konfiguracją pliku:
Następnie możesz uruchomić polecenie generowania.
źródło
Musisz mieć coś.module.ts dla każdej sekcji aplikacji. Działa jak Angular. Jest to konfigurowane przy pomocy resolwerów i usługi GraphQL REST jest nieco inny w przypadku kontrolera. Każdy moduł prawdopodobnie będzie miał jednostkę, a jeśli GraphQL, projects.schema.graphql.
projects.module.ts
źródło