Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro indicando connectionFactory is not a function + erro 1251, "ER_NOT_SUPPORTED_AUTH_MODE"

pagamentos.js

module.exports = function (app) {
    app.get('/pagamentos', function (req, res) {
        console.log('/pagamentos');
        res.send('OK');
    });

    app.post('/pagamentos/pagamento',function (req, res) {
        var pagamento = req.body;

        pagamento.status = 'CRIADO';
        pagamento.data = new Date;

        var connection = app.persistencia.connectionFactory();
        var PagamentoDao = new app.persistencia.PagamentoDao(connection);
        PagamentoDao.salva(pagamento, function (erro, resultado) {
            console.log('pagamento criado');
            res.json(pagamento);
        });

    });
};

connectionFactory.js

var mysql = require('mysql');

function createDBConnection() {
    return mysql.createConnection({
       host:'localhost',
       user:'root',
       password:'',
       database:'payfast'
    });
}

module.exports = function () {
    return createDBConnection();
}

erro

TypeError: app.persistencia.connectionFactory is not a function
    at /home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/routes/pagamentos.js:15:43
    at Layer.handle [as handle_request] (/home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/express/lib/router/layer.js:95:5)
    at /home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/express/lib/router/index.js:335:12)
    at next (/home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/express/lib/router/index.js:275:10)
    at /home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/body-parser/lib/read.js:130:5
    at invokeCallback (/home/ricardocorrent/CURSO/ALURA/CARREIRAS/ProgramadorNode/payfast/node_modules/raw-body/index.js:224:16)

1 resposta
solução!

Nao sei como mas tudo funcionou depois que reiniciei!!!

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

Depois do erro corrigido, apareceu este outro erro e acabei encontrando a solução desta forma.

$mysql -u root
>use databaseName;
>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourRootPassword';
-- or
>CREATE USER 'name'@'%' IDENTIFIED WITH mysql_native_password BY 'bar';
-- then
>FLUSH PRIVILEGES;

Meu banco é ...

mysql  Ver 8.0.12 for Linux on x86_64 (MySQL Community Server - GPL)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software