1
resposta

Aula 08 - Video 4 - alert não funciona

São diversos arquivos para alterar, não sei o que faltou e não aprece mensagem de erro, só não aparece o alert que deveria depois que cadastra.

Onde está o data.livro?

Como eu vejo se o json está certo. O node está convertendo os dados do banco em json?

De onde vem o livro?

De onde vem novaPromocao?

promocoes.js

module.exports = function(app) {
    app.get("/promocoes/form",function(req,res){
        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        produtosDAO.lista(function(erros,resultados){
            console.log(erros);
            res.render('promocoes/form',{lista:resultados});
        });
        connection.end();
    });
    app.post("/promocoes", function(req,res){
      var promocao = req.body;
      app.get('io').emit('novaPromocao',promocao);
      res.redirect('promocoes/form');
    })
}

index

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io();
    socket.on('novaPromocao',function(data){
        alert("Livro em promocao "+data.livro.id);
    });
</script>

form

<html>
    <body>
        <form action="/promocoes" method="post">
        <div>
            <input type="text" name="mensagem"/>
        </div>
        <div>
          <select name="livro[id]">
            <%for(var i=0;i<lista.length;i++){%>
            <option value="<%=lista[i].id%>"><%=lista[i].titulo%></option>
            <%}%>
          </select>
        </div>
        <input type="submit" value="Cadastrar promoção"/>
    </body>

</html>

home

var app = require('./config/express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.set('io', io);

http.listen(3000, function(){
    console.log("Servidor rodando");
});
1 resposta

Onde está o data.livro? => vem dos dados enviados do servidor para o cliente, vi socket.io

Como eu vejo se o json está certo. O node está convertendo os dados do banco em json? => não é o node que faz isso e sim o driver do mysql

De onde vem o livro? ```var promocao = req.body;````

De onde vem novaPromocao? => app.get('io').emit('novaPromocao',promocao); Agora para saber o motivo do alert não aparecer, vc precisa debugar e ver onde está dando erro.