Nestjs 鏈接mysql


文檔

下插件

λ yarn add @nestjs/typeorm typeorm mysql

創建 cats模塊, 控制器,service

λ nest g mo cats
λ nest g co cats
λ nest g s cats cats/

鏈接mysql 鏈接出現下面的錯誤

Client does not support authentication protocol requested by server; consider u pgrading MySQL client 如果出現這個錯誤 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的數據庫密碼';

// app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm'; #
import { Connection } from 'typeorm'; #
import { CatsModule } from './cats/cats.module';


@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: 'mysql登錄密碼',
      database: 'nest',
      entities: [__dirname + '/**/*.entity{.ts,.js}'],
      synchronize: true,
    }), #
    CatsModule
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {
  constructor(private readonly connection: Connection) {}  #
}

編輯 entity

// cats.entity.ts

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

@Entity()
export class Cats {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({length: 45})
  name: string;

  @Column('int')
  age: number;
}

在cats.module.ts 中使用

import { TypeOrmModule } from '@nestjs/typeorm';
import { Cats } from './cats.entity';
@Module({
  imports: [TypeOrmModule.forFeature([Cats])],
})
export class CatsModule {}

注入 cats.service.ts

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Cats } from './cats.entity';
import { Repository } from 'typeorm';

@Injectable()
export class CatsService {
  constructor(

    @InjectRepository(Cats)
    private readonly catsRepository: Repository<Cats>

    ) { }
  
  find(){
    return this.catsRepository.find()
  }

  getCat(name:string): Promise<Cats[]> {
    return this.catsRepository.find({ name });
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM