前提
初学でNestjsを学んでいます。
現在TypeORMを用いて、DBを操作しようとしていますが、Repositoryの設定に詰まっています。
何卒ご教授をお願い致します。
実現したいこと
- Repositoryについて理解する
- Repositoryの設定方法を確認する
発生している問題・エラーメッセージ
TypeORMが公式で出しているスクリプト通りに実行しようとするが、datasourceが見つからない。
公式のソースコード
Typescript
1import { User } from "./entity/User" 2 3const userRepository = dataSource.getRepository(User) 4const user = await userRepository.findOneBy({ 5 id: 1, 6}) 7user.name = "Umed" 8await userRepository.save(user)
上記を参考に、item.repository.tsに下記のような単純なスクリプトを書きました。
Typescript
1import { Item } from 'src/entities/item.entity'; 2 3export const UserRepository = dataSource.getRepository(Item)
しかし、ここで名前 'dataSource' が見つかりません。
というエラーがでます。
試したこと
- datasourceがDataSourceのことだと仮定して、
iimport { DataSource } from 'typeorm';
を追記し、DataSource.getRepository(Item)
に書き換えた。
しかし、下記が発生した。
プロパティ 'getRepository' は型 'typeof DataSource' に存在しません。
補足情報(FW/ツールのバージョンなど)
- Node.jsバージョン:v16.16.0
- DB:Postgres9.5
npm list --depth=0
実行結果
├── @nestjs/cli@9.1.1 ├── @nestjs/common@9.0.11 ├── @nestjs/core@9.0.11 ├── @nestjs/platform-express@9.0.11 ├── @nestjs/schematics@9.0.1 ├── @nestjs/testing@9.0.11 ├── @nestjs/typeorm@9.0.1 ├── @types/express@4.17.13 ├── @types/jest@28.1.4 ├── @types/node@16.11.56 ├── @types/supertest@2.0.12 ├── @typescript-eslint/eslint-plugin@5.35.1 ├── @typescript-eslint/parser@5.35.1 ├── class-transformer@0.5.1 ├── class-validator@0.13.2 ├── eslint-config-prettier@8.5.0 ├── eslint-plugin-prettier@4.2.1 ├── eslint@8.23.0 ├── jest@28.1.2 ├── pg@8.8.0 ├── postgres@3.2.4 ├── prettier@2.7.1 ├── reflect-metadata@0.1.13 ├── rimraf@3.0.2 ├── rxjs@7.5.6 ├── source-map-support@0.5.21 ├── supertest@6.2.4 ├── ts-jest@28.0.5 ├── ts-loader@9.3.1 ├── ts-node@10.9.1 ├── tsconfig-paths@4.0.0 ├── typeorm@0.3.9 ├── typescript@4.8.2 └── uuid@8.3.2
あなたの回答
tips
プレビュー