/api-animais

Primary LanguageTypeScript

Projeto desenvolvido como forma de estudo de NestJs com TypeORM.

1 - Iniciando um projeto Nest:

nest new project-name
cd project-name
nest run start ou nest run start:dev

2 - Excluindo arquivos que não serão utilizado no momento:

pasta test
src/app.controller.spec.ts

3 - Criar o controller Cachorro:

import {Controller} from '@nestjs/common';

@Controller('cachorros')
export class CachorrosController { }

4 - Adicionar CachorrosController no controller de app.module.ts

controllers: [AppController, CachorrosController]

5 - Instalar o TypeORM:

npm install --save @nestjs/typeorm typeorm mysql2

6 - Adicionar o TypeOrmModule no Imports do AppModule:

  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: 'root',
      database: 'test',
      entities: [],
      synchronize: true,
    }),
  ],

7 - Criar a tabela Animais no banco de dados:

CREATE DATABASE Animais;
USE Animais;

8 - Criar a entidade Cachorro:

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

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

  @Column()
  name: string;

  @Column()
  raca: string;
}

9 - Adicionar Cachorro a Entidade do TypeORM no AppModule:

entities: [Cachorro],

10 - Criar Cachorro Service:

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

@Injectable()
export class CachorrosService {
  constructor(
    @InjectRepository(Cachorro)
    private CachorrosRepository: Repository<Cachorro>,
  ) {}

  findAll(): Promise<Cachorro[]> {
    return this.CachorrosRepository.find();
  }
}

11 - Adicionar CachorrosService no AppModule:

  providers: [AppService, CachorrosService],

12 - Adicionar forFeature no Import do AppModule:

TypeOrmModule.forFeature([Cachorro]),