Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Erro método POST - API REST - NodeJS

Eu estou tendo o seguinte erro ao tentar enviar um dado para a minha API REST, alguém sabe como resolver?

throw err; // Rethrow non-MySQL errors
        ^

TypeError: Cannot read property 'insertId' of undefined
    at Query.userDAO.post [as _callback]
6 respostas

Esse é o meu service:

    public static adiciona(url: string, dado: Panel) {

        return fetch(url, {
            headers: {'Content-Type': 'application/json'},
            method: 'post',
            body: JSON.stringify(dado)
        })
        .then(res => {
            if(!res.ok) throw new Error(res.statusText);
            return res;
        });
    }

Esse é o meu controller:

            PanelService.adiciona('http://localhost:8888/', panel)
            .then(() => {
                alert('Pessoa cadastrada com sucesso');                
            })
            .catch(() => alert('Não foi possível cadastrar a pessoa'));

Oi Leo, tudo bem? Acho que não é esse trecho que tá com problemas, ele fala de um userDAO.post esse userDAO é um arquivo no seu projeto?

Esse é meu userDAO.post:

UserDAO.prototype.post = function(user, callback) {
  this._connection.query('INSERT INTO people SET ?', user, callback);
};

Não achei solução para esse erro em nenhum lugar.

Essa é minha callback:

    userDAO.post(user, (err, result) => {
      if (err) res.status(500).send(`Erro: ${err}`);
      console.log('200 - SUCCESS');
      user.id = result.insertId;
      res.location(`/${user.id}`);
      res.status(201).json(result);
    });

Quando eu uso o Postman pra inserir uma pessoa, funciona normalmente, mas quando uso o meu client, não funciona.

solução!

O erro diz que você está tentando acessar uma propriedade que não existe, e essa propriedade é o insertId que está no seu callback. Talvez exista alguma diferença entre um cliente e uma pessoa que esteja causando problemas e assim você está tendo erro.