Categorias
iiiiii
servicios nest
Descripcion
Como crear un servicio
Nota1
Provider: Estos son basicamente clases que se pueden inyectar. y estos no siempre van a tener logica de negocio
Servicio: Es todo aquello que tiene la logica de negocio para extraer datos y manejarlos, adicional
se pueden inyectar en otras clases. tambien todos los serivicios son provider.
NOTA: para este ejemplo se creara un servicio que solo sirva un json objeto literal quemado
Modulo
a
Servicio
a
Controlador
import { Body, Controller,Delete,Get, Param, ParseIntPipe, Patch, Post } from '@nestjs/common';
import { CarsService } from './cars.service';
@Controller('cars')
export class CarsController {
constructor(
private readonly carsService:CarsService //aqui se inyecta el servicio para poder usarlo
){
}
//asi se va manejar solicitudes get
@Get()
getAllCars(){
return this.carsService.findAll();
}
//asi se va manejar solicitudes get con parametros haciendo uso del decorador @Param
@Get(':id')
getCarById(@Param('id',ParseIntPipe) id:number){
return this.carsService.findById(Number(id));
}
//asi se va manejar solicitudes post y se va captar el body con el decorador @Body()
@Post()
crarCarro(@Body() body:any){
return {
body
}
}
@Patch(':id')
updateCard(
@Param('id',ParseIntPipe) id:number,
@Body() body:any
){
return body
}
@Delete(':id')
deleteCard(@Param('id',ParseIntPipe) id:number){
return {
"metod":"delete",
id :id
}
}
}
Entity
import { Injectable, NotFoundException } from '@nestjs/common';
@Injectable()
export class CarsService {
private cars=[
{
id:1,
name:'bran',
modelo:'Corolla'
},
{
id:2,
name:'Honda',
modelo:'Sid'
},
{
id:3,
name:'Jeep',
modelo:'Otra'
}
];
findAll(){
return this.cars;
}
findById(id:number){
const cart = this.cars.find(car=>car.id===id);
if(!cart) throw new NotFoundException(`el carro con el id=${id} no existe`); //Estos puede enviar el mensaje personalizado si asi se dese por parametro
return cart;
}
}
App.module
a
Main
a