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

depois que eu cadastro a pagina redireciona a um erro

O meu código está idêntico ao código feito em aula, estava tudo perfeito. o erro começou depois que codei a última promisse ... a página / livros está carregando normal, e a página de formulários também, mas basta cadastrar o livro que ela redireciona para a página livros com erros e não carrega a página. dando esses erros " ReferenceError: promisse is not defined at LivroDao.adiciona (C:\Users\55199\AllProjects\casadocodigo\src\app\infra\livro-dao.js:8:9) at C:\Users\55199\AllProjects\casadocodigo\src\app\rotas\rotas.js:42:18 at Layer.handle [as handle_request] (C:\Users\55199\AllProjects\casadocodigo\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\55199\AllProjects\casadocodigo\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Users\55199\AllProjects\casadocodigo\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\55199\AllProjects\casadocodigo\node_modules\express\lib\router\layer.js:95:5) at C:\Users\55199\AllProjects\casadocodigo\node_modules\express\lib\router\index.js:281:22 at Function.process_params (C:\Users\55199\AllProjects\casadocodigo\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\55199\AllProjects\casadocodigo\node_modules\express\lib\router\index.js:275:10) at C:\Users\55199\AllProjects\casadocodigo\node_modules\body-parser\lib\read.js:130:5 "

e dando f12 no browser: " livros:1 Failed to load resource: the server responded with a status of 500 (Internal Server Error) "

por gentileza, quem puder trazer me a luz e me tirar das trevas, eu agradeço! rs rs

// livro-dao
class LivroDao {

    constructor(db) {
        this._db = db;
    }

    adiciona(livro) {

        return new promisse((resolve, reject) => {
            this._db.run(`
                INSERT INTO livros (
                    titulo,
                    preco,
                    descricao
                ) values(?,?,?)
            `    ,[
                    livro.titulo,
                    livro.preco,
                    livro.descricao
                ],
                function (err) {
                    if (err) {
                        console.log(err);
                        return reject('Não foi possível adicionar o livro!');
                    }

                    resolve();
                } 

                )
        });
    }

    lista() {
        return new Promise((resolve, reject) => {
            this._db.all(
                'SELECT * FROM livros',
                (erro, resultados) => {
                    if (erro) return reject('Não foi possível listar os livros!');

                    return resolve(resultados);
                }
            )

        });
    }
}
module.exports = LivroDao;

//rotas.js
const LivroDao = require('../infra/livro-dao');
const { Database } = require('sqlite3');
const db = require('../../config/database')

module.exports = (app) => {
    app.get('/', function(req, resp) {
        resp.send(`<html>
                        <head>
                            <meta charset="utf-8">
                        </head>
                        <body>
                            <h1> Casa do Código </h1>
                        </body> 
                   </html>
                 `  

            );
    });

    app.get('/livros', function(req, resp) {

        const livroDao = new LivroDao(db);
        livroDao.lista()
                .then(livros => resp.marko(
                    require('../views/livros/lista/lista.marko'),
                    {
                        livros: livros
                    }

                ))
                .catch(erro => console.log(erro));


    });
    app.get('/livros/form', function (req, resp){
        resp.marko(require('../views/livros/form/form.marko'));
    });

    app.post('/livros',function(req, resp){
        console.log(req.body);
        const livroDao = new LivroDao(db);
        livroDao.adiciona(req.body)
                .then(resp.redirect('/livros'))
                .catch(erro => console.log(erro));
    });

};
2 respostas
solução!

Olá Cristiano, tudo bem com você?

Então, o que ocorreu foi apenas um problema de conceito, a Promise é um objeto do javascript, então aqui:

return new promisse( (resolve, reject) => {

Deveria ser:

return new Promise( (resolve, reject)  => {

Por isso o erro de promisse is not defined :)

Abraços e Bons Estudos!

realmente era esse pequeno erro de digitação, muto obrigado!