✋
NestJSの環境構築(備忘録)
NestJSの環境構築手順(Windows)
0. npmをインストールする
1. Node.jsをインストール
1. NestJSのプロジェクトを作成
1. まずはNest CLIを使えるようにしよう
npm install -g @nestjs/cli
2. プロジェクトを作ろう
nest new example
※npm・yarnどっちでも大丈夫
2. GitLabにアップロードする(git使いたい人向け)
1. gitをインストール
2. ローカルでコミットまでする
git init
git status
git add .
git commit -m "コメント"
3. git configの設定
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
4. GitLabの設定
- 新規プロジェクトを作成
- READ.MEのチェックを外しておく
5. GitLabへプッシュ(すでにローカルにレポジトリがある時)
cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
6. エラー:fatal: Not a git repository (or any of the parent directories): .git 対処方法
- 下記を実行する
git init
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
7. .gitignoreの設定を確認
- 重要な情報は.envに入れる
.gitignore
.env
8. ブランチ名をmasterからmainに変える
git branch -m master main
git push -u origin main
- GitLab上でmainをデフォルトブランチに設定
- masterブランチを削除
3. DockerでPostgresを起動する
1. docker-compose.yamlを配置
docker-compose.yaml
version: '3'
services:
db:
image: postgres:14
container_name: postgres
ports:
- 5432:5432
volumes:
- db-store:/var/lib/postgresql/data
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
volumes:
db-store:
2. docker desktopをインストールする
3. Docker Desktopが起動しない対処方法
- Linux カーネルを更新しないといけない
- 手順4をダウンロードして実行するだけでOK
4. コンテナの起動
- Docker Desktopで起動していればOK!
docker-compose up -d
4. 実装
1. module/controller/serviceを作る
nest g module example
nest g controller example
nest g service example
2. バリデーションチェックの導入
npm install --save class-validator class-transformer
3. TypeError: classTransformer.plainToClass is not a function at ValidationPipe.transformの対処方法
- バージョンが合っていないから
"class-transformer": "^0.5.0",
4. 中身の実装はほかのサイト参考にしてください!
5. ORMの導入
- TypeORMの導入をします
npm install typeorm
npm install pg # MySQLの場合はmysql
npm install reflect-metadata
npm install @types/pg --save-dev
5. entityを作成する
user.entity.ts
@Entity()
export class Item {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
name: string;
}
6. ormconfigの設定をする
- docker-compose.yamlと同じ内容にすること
- entityやmigrationのパスを合わせること
ormconfig.js
module.exports = {
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'postgres',
password: 'postgres',
database: 'postgres',
autoLoadEntities: true,
entities: ['dist/entities/*.entity.js'],
migrations: ['dist/migrations/*.js'],
cli: {
entitiesDir: 'src/entities',
migrationsDir: 'src/migrations',
},
};
7. migrationを行う
- distが更新できてないとうまくできない
yarn build
npx typeorm migration:generate -n example
npx typeorm migration:run
- scriptsに登録すると実行が楽になる
package.json
"migration": "npx typeorm migration:run"
8. 完成
- このような流れでDB作成まで行えます
ex. あったら便利
Postman
1. Postmanをインストールする
2. リクエストの作成
- 以下のように作成
3. エクスポートしてプロジェクトに保存
- jsonでエクスポートしてGitに保存すればほかのPCでも簡単に利用できる
- 以下の形でエクスポート
postman_collection.json
{
"info": {
"_postman_id": "8deab7a4-686d-42c3-a836-05687e997ac4",
"name": "demo",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "findAll",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:3000/demo",
"protocol": "http",
"host": [
"localhost"
],
"port": "3000",
"path": [
"demo"
]
}
},
"response": []
}
]
}
Discussion