私はtypeormを使い始めました。私はいくつかのエンティティを作成しました:エンティティのインスタンスを作成する原因Reflect.getMetadataは関数ではありません
@Table()
export class User {
@PrimaryColumn()
name: string;
@Column()
passwordHash: string;
@OneToMany(type => Sprint, sprint => sprint.scrumMaster)
sprints: Sprint[];
@OneToMany(type => BacklogItem, item => item.assignedTo)
assignments: BacklogItem[];
@OneToMany(type => BacklogItem, item => item.createdBy)
createdItems: BacklogItem[];
}
@Table()
export class Sprint {
@PrimaryGeneratedColumn()
id: number;
@Column("date")
start: Date;
@Column("date")
end: Date;
@ManyToOne(type => User, user => user.sprints)
scrumMaster: User;
@OneToMany(type => BacklogItem, item => item.sprint)
items: BacklogItem[];
@Column()
isFinished: boolean;
}
Typeormはデータベース(Sqlite)を作成します。しかし、let = user = new User()
のようなエンティティのインスタンスを作成するときは、次のスタックトレースでNodeJSが即座にクラッシュします。
C:\ Users \ Chris \ Documents \ TypeORM - Kopie(2)\ node_modules \ typeorm \デコレータ\列\ PrimaryColumn.js:20 var reflectType = ColumnTypes_1.ColumnTypes.typeToString(Reflect.getMetadata( "design:type"、object、propertyName)); ^
例外TypeError:Reflect.getMetadataはCで機能 ではありません:\ユーザーはクリス\ドキュメント\ \ TypeORM - Kopie PrimaryColumn.js \(2)\ node_modules \ typeorm \デコレータ\コラム:76 で:20 __Decorate(C:¥Users¥Chris¥Documents¥TypeORM-Kopie(2)¥entities¥Sprint.js:5:110) atオブジェクト。 (Module.js:541:32) (Object.Module._extensions)の で、C:¥Users¥Chris¥Documents¥TypeORM-Kopie(2)¥entities¥Sprint.js:19:1) Module.load(module.js:550:10) (Module.js:456:32) のtryModuleLoad(module.js:415:12) at Function.Module._load(module.js:407: 3) at Module.require(module.js:466:17) at require(internal/module.js:20:19) 新しいインスタンスを作成する行を削除すると、すべて正常です。私は@PrimaryColumn("int", { generated: true })
のような別のPrimaryKey decoratersを使用しようとしましたが、これは役に立ちません。
EDIT:私tsconfig.json: { "バージョン": "2.1"、 "compilerOptions":{ "LIB": "ES5"、 "ES6"]、 "標的":「ES5 " "モジュール": "commonjs"、 "moduleResolution": "ノード"、 "emitDecoratorMetadata":真、 "experimentalDecorators":真、 "sourceMap":真、 "typeRoots":[" node_modules/@types "] }、 " exclude ":[ " node_modules " ]
ありがとうございます。
私はすべてがあると思います。 'tsc -version'は私に2.1.4を与えます。私は 'tsc -p .'を使って自分のコードをコンパイルします。元の投稿に自分のtsconfigを追加しました。 –
で問題を解決する必要があります。このサンプルをチェックアウトしてみてください:https://github.com/typeorm/typescript-exampleそれを実行し、それが動作するかどうか確認してください – pleerock
サンプルは実際に動作します。私は今あなたのサンプルに私のソースコード全体をコピーし、今それは動作します。ありがとう –