J'essaye d'ajouter une entité Idea à mon TypeOrm (configuré sur mysql), et il semble que les importations refusent de fonctionner. Une fois le fichier ajouté, le typeorm ne s'initialise pas correctement.
J'ai réinstallé le package typeorm et je n'ai aucune idée par où commencer le débogage. Je suis un tutoriel ( https://www.youtube.com/watch?v = EHlhvy-fh90 ), dans lequel cette erreur n'apparaît PAS. Je m'en suis écarté en remplaçant une base de données postgresql par un mysql dockerisé.
J'ai eu des difficultés à configurer le nœud -> connexion mysql, optant finalement pour exécuter un mysql 5 dockerisé pour tenir compte des erreurs d'authentification (en suivant cette réponse: https://stackoverflow.com/a/50167617/9043642 ). Sans le fichier idea.entity.ts, la connexion passe (avec orm), donc je ne m'attendrais pas à ce qu'il y ait un problème avec la base de données.
C'est ce que mon fichier idea.entity.ts ressemble à. Il suit effectivement l'exemple trouvé dans la documentation ( https://docs.nestjs.com/techniques/database a>). Copié et collé, l'exemple de documentation donne quand même la même erreur.
[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)
J'obtiens l'erreur suivante lors de l'exécution
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; }
Notamment, la connexion à la base de données échoue. Encore une fois, sans l'entité idée présente, la connexion est bonne. Le résultat attendu est [InstanceLoader] Dépendances TypeOrmCoreModule initialisées
. Comment réussirais-je à créer une entité comme celle-ci?
3 Réponses :
A fini par être un fichier ormconfig.json en désordre. Assurez-vous qu'il respecte le format suivant: https: // github. com / nestjs / nest / blob / master / integration / typeorm / ormconfig.json
Je sais qu'il est un peu tard, mais cela pourrait aider quelqu'un. J'ai eu la même erreur et tout fonctionnait pour moi, j'ai fini par cloner un dépôt à partir d'un tutoriel et j'ai essayé de comprendre ce qui était différent. Après quelques itérations, ce qui a fonctionné pour moi a été de changer mon fichier nodemon.json d'origine de ceci:
{ "watch": ["src"], "ext": "js", "ignore": ["src/**/*.spec.ts"], "exec": "ts-node -r tsconfig-paths/register src/main.ts" }
en ceci:
{ "watch": ["dist"], "ext": "js", "exec": "node dist/main" }
En fait, je ne fais que changer le paramètre "exec" a fonctionné.
J'espère que cela pourrait être utile pour quelqu'un.
Ajoutez le chemin des entités comme dossier dist
{ "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}"] }
Il serait utile d'avoir plus de détails sur comment et pourquoi votre réponse résout la question.
Cette erreur est généralement due à un problème de syntaxe, généralement au-dessus de celui-ci dans votre code. Regardez les instructions d'importation précédentes pour le problème.