Closed1

Nest.js

katayama8000katayama8000

MySQLと接続

環境構築

  • nest new プロジェクト名
  • @nestjs/typeorm,typeorm,mysql2をインストール
  • MySQLの環境構築(dockerでも可)

database定義

typeorm/User.ts

import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';

@Entity({ name: 'users' })
export class User {
  @PrimaryGeneratedColumn({ type: 'bigint', name: 'user_id' })
  id: number;

  @Column({
    nullable: false,
    default: '',
  })
  username: string;

  @Column({
    name: 'email',
    nullable: false,
    default: '',
  })
  email: string;

  @Column({
    nullable: false,
    default: '',
  })
  password: string;
}

nest.jsとMySQLの接続

  • create database todo_db;
  • use todo_db;DB作成
  • show tables; この時点ではテーブルが存在しないはず

app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import entities from './typeorm';
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: '設定したパスワード',
      database: 'todo_db',
      entities: entities,
      synchronize: true,
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

  • yarn start:dev
  • show tablesUsersテーブルがあるはず
  • select * from Userstypeormで定義したテーブルの内容が反映されている
このスクラップは2024/03/27にクローズされました