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

Página carrega em branco

Olá. A minha página está carregando em branco, não consigo carregar as informações no browser. Já instalei o mysql no ubuntu, criei a tabela, instalei o módulo mysql pelo npm, tudo ok. Minha pasta views está dentro da pasta app. O servidor roda, não dá nenhuma mensagem no console, mas a tela fica em branco. Seguem os meus códigos. Alguma dica?

express.js

var app = require('express')();
app.set('view engine', 'ejs');
app.set('views', './app/views');
module.exports = function () {
    return app;
};

app.js

var app = require('./config/express')();
var rotasProdutos = require('./app/routes/produtos')(app);
console.log(rotasProdutos);
app.listen(3000, function () {
    console.log('servidor monstraaao');
});

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();
    });
}
5 respostas

Se está vindo vazio, deve estar ocorrendo um erro, na hora de fazer a consulta ao banco de dados você precisa tratar eventuais erros.

Faça o seguinte ajuste na connection.query (arquivo produtos.js)

De:

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

Para:

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

Isso deve imprimir o erro no terminal e na tela do navegador.

Certo, aqui está o erro que apareceu no terminal:

{ [Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client] code: 'ER_NOT_SUPPORTED_AUTH_MODE', errno: 1251, sqlState: '08004', fatal: true }

Consegue saber o que é? Valeu

Parece que é algo relacionado ao MySQL.

Pelo que eu vi, se recomenda tentar atualizar a instalação do MySQL para uma versão mais atual.

Mas, você pode tentar ajustar as configurações da instalação atual.

Conecte no seu banco e tente seguir as instruções destes links:

http://stackoverflow.com/questions/4312710/client-does-not-support-authentication-protocol-requested-by-server

https://dev.mysql.com/doc/refman/5.5/en/old-client.html
solução!

Ainda não consegui. Ma parece que tem que mudar a senha. De início, eu cadastrei sem senha nenhuma. Tentei mudar a senha com esse comando

-> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('new_password');

mas o comando não funcionou, pois não sei como colocar senha nenhuma no lugar de "OLD_PASSWORD".

Depois tentei esse outro método que achei aqui (https://goo.gl/Rb22b5), me parece que trocou a senha:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Mas ainda não funcionou. Dá a mesma mensagem de erro. Meu mysql é versão 5.7.16.

Alguma sugestão? Tem como apagar todo esse projeto no mysql e começar de novo, pra colocar uma nova senha?

ufaaa! consegui!!! criei um novo usuário e uma nova senha no mysql,

var connectMYSQL = function(){
    return mysql.createConnection({
        host : 'localhost',
        user : 'andre',
        password : 'andre',
        database : 'catalogo_produtos'
    });
}

segue o link para criar o usuário e senha no mysql https://www.digitalocean.com/community/tutorials/como-criar-um-novo-usuario-e-conceder-permissoes-no-mysql-pt