【发布时间】:2019-11-13 09:32:31
【问题描述】:
我正在尝试向我的 TypeOrm(配置为 mysql)添加一个 Idea 实体,并且导入似乎无法正常工作。添加文件后,typeorm 没有成功初始化。
我已经重新安装了 typeorm 包,但我不知道从哪里开始调试。我正在关注一个教程(https://www.youtube.com/watch?v=EHlhvy-fh90),其中没有出现此错误。我通过用 dockerized mysql 替换 postgresql 数据库来偏离它。
我在设置节点 -> mysql 连接时遇到了一些麻烦,最终选择运行 dockerized mysql 5 来解决身份验证错误(遵循此答案:https://stackoverflow.com/a/50167617/9043642)。如果没有idea.entity.ts 文件,连接就会通过(使用orm),所以我不认为数据库会出现问题。
这就是我的idea.entity.ts 文件的样子。它有效地遵循了文档 (https://docs.nestjs.com/techniques/database) 中的示例。复制和粘贴,文档示例还是给出了同样的错误。
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;
}
我在运行时遇到以下错误
[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)
值得注意的是,数据库连接失败。同样,如果没有想法实体,连接就很好。预期结果是[InstanceLoader] TypeOrmCoreModule dependencies initialized。我将如何成功创建这样的实体?
【问题讨论】:
-
这个错误通常是由于语法问题引起的,通常在你的代码中。查看前面的 import 语句是否有问题。
标签: mysql typescript docker nestjs typeorm