Dada a seguinte função de post:
function sincronizaPlacar() {
var linhas = $("tbody>tr");//Pega todas as tr's filhas diretas do tbody.
var placar = [];
linhas.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 = {
tabela: placar //ATRIBUTO EM QUESTÃO
};
$.post("http://localhost:3000/placar",dados,function() {
console.log("Foi enviado para o servidor");
}).fail(function() {
console.log("falhou");
});
}
Se eu uso o nome do atributo em questão diferente do conteúdo dele, como escrito acima, o POST não funciona dando o seguinte erro:
TypeError: Cannot read property '_id' of undefined
at Datastore.prepareDocumentForInsertion (C:\Users\pedro\Alura\JQuery\alura-typer\servidor\node_modules\nedb\lib\datastore.js:384:21)
at Datastore._insert (C:\Users\pedro\Alura\JQuery\alura-typer\servidor\node_modules\nedb\lib\datastore.js:347:24)
at C:\Users\pedro\Alura\JQuery\alura-typer\servidor\node_modules\nedb\lib\executor.js:40:13
at Object.process (C:\Users\pedro\Alura\JQuery\alura-typer\servidor\node_modules\nedb\node_modules\async\lib\async.js:731:21)
at next (C:\Users\pedro\Alura\JQuery\alura-typer\servidor\node_modules\nedb\node_modules\async\lib\async.js:728:27)
at Immediate.<anonymous> (C:\Users\pedro\Alura\JQuery\alura-typer\servidor\node_modules\nedb\node_modules\async\lib\async.js:24:16)
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
Mas se uso o nome do atributo igual ao do conteúdo, como por exemplo "placar: placar", o POST funciona. Por que isso ocorre?