Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

Tabela não aparace no localhost...

Olá, estou com um probleminha em relação a conexão dos dados que estão lá no Mysql 1) Segue o codigo do produtos.js

module.exports = function(app){
    app.get('/produtos', function(req,res){
        var mysql = require('mysql')
        var connection = mysql.createConnection({
            host : 'localhost',
            user : 'root',
            password : '',
            database : 'casadocodigo_nodejs'
        });
        connection.query('select * from livros', function(err, results){
            res.send(results);
        });
        connection.end();

 });
}

2) O meu terminal quando roda o servidor


C:\Users\Felipe\casadocodigo>nodemon app
[nodemon] 1.14.12
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node app`
server on

3) Vou para localhost:3000/produtos e ai nada aparece... eu sinceramente não sei aonde estou errando no codigo

Obrigado, aguardo uma resposta !

10 respostas

Oi parismollochristondis, tudo bem? O que aparece na tela? Nada? No terminal, nenhuma mensagem é mostrada?

O primeiro "problema" é que você está enviando a resposta do banco de dados direto para o navegador. No curso, é criada uma página (view) que lista os produtos, você não criou essa página?

O primeiro "problema" é que você está enviando a resposta do banco de dados direto para o navegador. No curso, é criada uma página (view) que lista os produtos, você não criou essa página?

Wanderson, acho que no caso do parismollochristondis, ele ainda não chegou na etapa de usar a view engine ainda. Chamando a função send do response passando o resultado do callback como argumento, também funciona. Geralmente o que será enviado será o resultado como um JSON para o cliente.

Acredito que o motivo de não estar aparecendo nada para ele é por que, talvez, as credenciais do banco de dados estejam inválidas.

Parismollochristondis, por acaso o seu username do banco de dados é realmente "root" e o seu password é realmente vazio '' e o nome do database esta correto?

Boa Rodolpho, pode ser isso sim, mas como ele não comentou nada sobre erro no terminal, achei que esse não fosse o problema. Em qualquer um desses casos que você relata, ele receberia um erro no terminal pelo menos informando o problema.

parismollochristondis, está sendo impressa alguma mensagem de erro no terminal quando você tenta acessar a página de listagem dos produtos?

estou com o mesmo problema, o código funciona normalmente, compila e no terminal aparece a mensagem "servidor rodando", após atualizar a página mostra a mensagem "listando..." porém as colunas da tabela não aparecem, é como se não tivesse feito nenhuma alteração

var express = require('express');
var app = express();

app.set('view engine','ejs');

app.get('/produtos', function(req, res){
    console.log("listando...");
    res.render("produtos/lista");
});

app.listen(3000, function(){
    console.log("servidor rodando");
});
<html>
    <body>
        <table border="1px">
            <tr>
                <td>id</td>
                <td>nome</td>
            </tr>
            <tr>
                <td> 1</td>
                <td>livro de node js</td>
            </tr>
        </table>
    </body>
</html>

coloquei o parâmetro 'results' dentro de um console.log e ele retornou undefined no terminal

Douglas, você tem livros no seu banco de dados?

sim, adicionei os livros seguindo o passo a passo em aula

Se results retorna undefined, houve algum problema ao tentar consultar o banco de dados.

Faça o seguinte ajuste para identificar o problema:

connection.query('select * from livros', function(err, results){
    if (err){
        console.log(err);
        }
            res.send(results);
        });

Douglas, por acaso os dados informados no connectionFactory estao corretos? O username password e database estao corretos? O serviço do MYSQL esta ativado?

A dica do Daniel acima eh muito válida. Verifique o erro que esta acontecendo.

solução!

Douglas, como você mesmo disse neste outro tópico, o erro é relativo a usuário e senha, informe os dados corretamente que deve funcionar.

Link do outro tópico: https://cursos.alura.com.br/forum/topico-json-nao-aparece-na-pagina-56771