Boa tarde,
Toda vez que tento sincronizar os dados com o servidor, no cmd do node me é gerado seguinte erro:
TypeError: Cannot read property '_id' of undefined
Boa tarde,
Toda vez que tento sincronizar os dados com o servidor, no cmd do node me é gerado seguinte erro:
TypeError: Cannot read property '_id' of undefined
Olá Raquel,
Pode postar o código do seu arquivo .js
por favor ?
Bom dia,
Aqui está o código da função:
$('#botao-sync').click(sincronizarPlacar);
function sincronizarPlacar() {
var placar = [];
var linhas = $('tbody>tr');
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 = {
placar: placar
};
$.post('http://localhost:3000/placar'), dados, function() {
console.log('Placar sincronicado com sucesso');
};
});
Olhando o código, o que eu entendi é que você pega todas as linhas de uma tabela, e para cada uma, cria um objeto score com usuário e nome. Esse objeto você guarda num array fora do loop chamado placar. Para cada linha, você posta o array atualizado para o seu servidor, dentro do objeto dados.
Não vejo um erro neste JS, como você comentou um problema no terminal, creio que no lado do server que está o problema.
Eu achei uma descrição de erro igual a sua, veja se este link te ajuda:
http://stackoverflow.com/questions/18542329/typeerror-cannot-read-property-id-of-undefined
Olá Raquel,
Este erro está na sua função, que para cada linha você envia um POST.
O certo seria enviar o POST apenas depois que o each()
terminar. Tente substituir sua função por esta, já corrigida:
$('#botao-sync').click(sincronizarPlacar);
function sincronizarPlacar() {
var placar = [];
var linhas = $('tbody>tr');
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 = {
placar: placar
};
$.post("http://localhost:3000/placar", dados, function(){
console.log("Placar sincronizado com sucesso");
});
}