Fiz o desafio capturando os dados do formulário e criando um objeto Negociacão para então fazer um json dele. No entanto dá erro 500 quando envio o json de Negociação, o que não acontece quando envio um json que foi criado através do Object.
<script>
function sendPost(event) {
event.preventDefault();
console.log("Enviando post");
//aqui você deve ler os dados do formulário
let $ = document.querySelector.bind(document);
let data = $('#data');
let quantidade = $('#quantidade');
let valor = $('#valor');
//criando um JSON o este código da erro
let negociacao = new Negociacao(
new Date(DateHelper.textoParaData(data.value)), quantidade.value, valor.value);
console.log(negociacao);
// com esse código não da erro
// let negociacao = {
// data: data.value,
// quantidade: quantidade.value,
// valor: valor.value
// }
//construir o json
var json = JSON.stringify(negociacao);
console.log(json);
//enviar o XMLHttpRequest
let xhr = new XMLHttpRequest();
xhr.open('POST','/negociacoes', true);
xhr.setRequestHeader('Content-type', 'application/json');
xhr.onreadystatechange = ()=>{
if(xhr.readyState == 4){
if(xhr.status == 200){
data.value = '';
valor.value = 0.0
quantidade.value = 1;
data.focus();
alert('negociação enviada com sucesso');
}else{
alert('Não foi possivel enviar a negociação');
}
}
}
xhr.send(json);
}
</script>
erros do console
Enviando post post.html:47 Negociacao {data: Thu Jan 23 9840 00:00:00 GMT-0300 (Horário de Verão do Amazonas), _quantidade: "100", _valor: "10"} post.html:57 {"data":"9840-01-23T03:00:00.000Z","quantidade":"100","valor":"10"} post.html:78 POST http://www.localhost:3000/negociacoes 500 (Internal Server Error) sendPost @ post.html:78 onclick @ post.html:28