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

Não consigo enviar o placar para o servidor

function sincronizaPlacar(){
    var placar = [];
    var linha = $("tbody>tr");

    linha.each(function(){
        var usuario = $(this).find("td:nth-child(1)").text();
        var palavras = $(this).find("td:nth-child(2)").text();

        var score = {
            usuario : usuario,
            pontos : palavras,
        };

        placar.push(score);
    });

    var dados = {
        palcar : placar
    };

    $.post("http://localhost:3000/placar", dados, function(){
        console.log("Placar sincronizado com sucesso");
    });

O código funciona corretamente, porém ele não envia os dados para o servidor. No prompt de comando aparece a seguinte mensagem:

C:\Users\Infortel\Desktop\Curso Alura\jQuery\alura-typer\servidor>npm start

> AluraTyper@1.0.0 start C:\Users\Infortel\Desktop\Curso Alura\jQuery\alura-typer\servidor
> node server

consign v0.1.2 Initialized in app
+ .\api\frases.js
+ .\api\placar.js
+ .\routes\frases.js
+ .\routes\placar.js
Banco data.db pronto para uso
Servidor iniciado
(node:4924) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
TypeError: Cannot read property '_id' of undefined
    at Datastore.prepareDocumentForInsertion (C:\Users\Infortel\Desktop\Curso Alura\jQuery\alura-typer\servidor\node_modules\nedb\lib\datastore.js:384:21)
    at Datastore._insert (C:\Users\Infortel\Desktop\Curso Alura\jQuery\alura-typer\servidor\node_modules\nedb\lib\datastore.js:347:24)
    at C:\Users\Infortel\Desktop\Curso Alura\jQuery\alura-typer\servidor\node_modules\nedb\lib\executor.js:40:13
    at Object.process (C:\Users\Infortel\Desktop\Curso Alura\jQuery\alura-typer\servidor\node_modules\nedb\node_modules\async\lib\async.js:731:21)
    at next (C:\Users\Infortel\Desktop\Curso Alura\jQuery\alura-typer\servidor\node_modules\nedb\node_modules\async\lib\async.js:728:27)
    at Immediate._onImmediate (C:\Users\Infortel\Desktop\Curso Alura\jQuery\alura-typer\servidor\node_modules\nedb\node_modules\async\lib\async.js:24:16)
    at processImmediate (internal/timers.js:439:21)
3 respostas
solução!

Fala aí Luis, tudo bem? Acho que o problema é uma pequena falha na escrita, repare nos dados que você está enviando para o servidor:

var dados = {
    palcar : placar
};

Deveria ser placer: placer:

var dados = {
    placar : placar
};

Espero ter ajudado.

Tudo bem Obrigado Passou desapercebido

Magina, é normal kkk

Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software