Angular + Nodejs Problem making change in product registration (update)

Asked

Viewed 9 times

0

Good Morning,

I’m trying to solve a problem but I’m not getting ...please I need help:

When trying to change a product registration, in Angular I get the API status 202 and the record is not saved in mysql database

Follow the application details:

service:

// GRAVAR PRODUTO

updateProduct(product: Iproduto): Observable {

return this.http.put<IProduto>(`${this.URL}/${produto.id}`, produto).pipe(
  map(retorno => retorno),
  catchError(erro => this.exibeErro(erro))

);

}

Interface:

export interface Iproduto {

     id?: number;
     id_grupo: number;
     id_marca: number;
     id_locacao: number;
     status: string;
     descricao: string;
     estoque_min: number;
     estoque_max: number;
                                

} Component.:

import { Router, ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';

import { Iproduto } from './.. /.. /models/Iproduto.model'; import { Productosservice } from './.. /.. /services/products.service'; import { Component, Oninit } from '@angular/core';

@Component({ selector: 'app-update-product', templateUrl: './update-product.component.html', styleUrls: ['. /update-product.component.css'] }) export class Uprodutocomponent Oninit Mplements {

private token = bearer ${localStorage.getItem('token')};

//*** STATEMENT OF VARIABLES *** //

product: Iproduto = {

id_grupo: null,
id_marca: null,
id_locacao: null,
status: null,
descricao: null,
estoque_min: null,
estoque_max: null
                           

}

constructor( private productsService: Productsservice, private router: Router, router private activatedRouter: Activatedroute) { }

ngOnInit(): void {
  const id = Number(this.activatedRouter.snapshot.paramMap.get('id'));
  this.produtosService.buscarPorId(id).subscribe(retorno => {
      this.produto = retorno['produto'];
  });

}

salvarProduto( ):void {

  this.produtosService.atualizarProduto(this.produto).subscribe( retorno => {
    this.produto = retorno;
      this.produtosService.exibirMensagem(
      'SISTEMA',
      `${this.produto.descricao} foi atualizado com sucesso.`,
      'toast-success' 
    );
    this.router.navigate(['produtos/listar-produtos']);
});
  

}

}

The 'change' function in the API:

exports.updateProduto = (req, res, next) =>{
mysql.getConnection((error, conn) =>{
    if(error){return res.status(500).send({ error : error })}
    conn.query(
      `UPDATE produtos SET 
       id_grupo = ?,
       id_marca = ?,
       id_locacao = ?,
       status = ?,
       descricao = ?,
       estoque_min = ?,
       estoque_max = ?  WHERE id = ?;`,
       [
        req.body.id,
        req.body.id_grupo,
        req.body.id_marca,
        req.body.id_locacao,
        req.body.status,
        req.body.descricao,
        req.body.estoque_min,
        req.body.estoque_max
        ],
        (error, result, field) => {
            conn.release();
            if(error){return res.status(500).send({ error : error })}
            const response = {
                mensagem: 'Produto atualizado com sucesso',
                produtoAtualizado:{
                    id: req.body.id,
                    id_grupo: req.body.id_grupo,
                    id_marca: req.body.id_marca,
                    id_locacao: req.body.id_locacao,
                    status: req.body.status,
                    descricao: req.body.descricao,                        
                    estoque_min: req.body.estoque_min,
                    estoque_max: req.body.estoque_max,
                   
                   
                }
                        
            }
            return res.status(202).send(response);
        }
    )   
});

}

Return from browser console:

Xhrputhttp://localhost:3000/products/5 [HTTP/1.1 202 Accepted 85ms]

message "Product updated successfully" Product Updated Object { id: 5, id_group: 1, id_brand: 8, ... } id 5 id_group 1 id_mark 8 id_locacao 5 status "A" Description "BORR PAN PRESS SILIC ETERNA NIGRO 3-4,5-6L S/PQ CWA" estoque_min 5 stock_max 35

In the terminal:

PUT /produtos/5 202 86.677 ms - 227

GET /products 304 9,784 ms - - GET /products 304 26.792 ms - -

I already know what to do ...

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.