2
respostas

Erro com o post.html

Assim que a pagina carrega recebo um erro

HttpService.js:3 Uncaught ReferenceError: System is not defined
    at HttpService.js:3

E quando eu clico para enviar os dados pro servidor ele me retorna mais um erro.

Uncaught ReferenceError: HttpService is not defined
    at sendPost (post.html:54)
    at HTMLButtonElement.onclick (post.html:32)

Aqui tá o post.html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Negociações</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
</head>

<body>

    <body class="container">
        <form class="form">

            <div class="form-group">
                <label for="data">Data</label>
                <input type="date" id="data" class="form-control" required autofocus />
            </div>

            <div class="form-group">
                <label for="quantidade">Quantidade</label>
                <input type="number" min="1" step="1" id="quantidade" class="form-control" value="1" required />
            </div>

            <div class="form-group">
                <label for="valor">Valor</label>
                <input id="valor" type="number" class="form-control" min="0.01" step="0.01" value="0.0" required />
            </div>

            <button class="btn btn-primary" type="submit" onclick="sendPost(event)">Enviar dados para servidor</button>
        </form>
        <script src="js/app/services/HttpService.js"></script>
        <script>
            function sendPost(event) {

                event.preventDefault();

                console.log("Enviando post");

                let $ = document.querySelector.bind(document);
                inputData = $('#data');
                inputQuantidade = $('#quantidade');
                inputValor = $('#valor');

                let negociacao = {
                    data: inputData.value,
                    quantidade: inputQuantidade.value,
                    valor: inputValor.value
                };


                new HttpService()
                    .post('/negociacoes', negociacao)
                    .then(() => {
                        inputData.value = '';
                        inputQuantidade.value = 1;
                        inputValor.value = 0.0;
                        inputData.focus();
                        alert('Negociação enviada com sucesso');
                    })
                    .catch(erro => console.log(`Não foi possível enviar a negociação: ${erro}`));
            }
        </script>
    </body>

</html>

O HttpService:

export class HttpService {
    _ErrorHandler(res) {
        if (!res.ok) throw new Error(res.statusText)
        return res
    }

    get(url) {
        return fetch(url)
            .then(res => this._ErrorHandler(res))
            .then(res => res.json());
    }
    post(url, dado) {
        return fetch(url, {
            headers: { 'Content-Type': 'application/json' },
            method: 'post',
            body: JSON.stringify(dado)
        })
            .then(res => this._ErrorHandler(res));
    }
}

e o boot.js:

import { currentInstance } from './controllers/NegociacaoController';

let negociacaoController = currentInstance();

document.querySelector('#formulario').onsubmit = negociacaoController.adiciona.bind(negociacaoController);
document.querySelector('#btnRemove').onclick = negociacaoController.remove.bind(negociacaoController);
document.querySelector('#btnImport').onclick = negociacaoController.importaNegociacoes.bind(negociacaoController);

Alguém pode me ajudar?

2 respostas

Boa tarde, Lucas! Como vai?

Vc poderia compartilhar o código completo no github para que eu possa dar uma olhada melhor? Daí é só mandar o link aqui que eu tento te ajudar!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Tá aqui o código todo.

github