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

conecta com postgreSQL

Boa tarde...

Como eu faço para conectar no banco postgresSQL?

Poderia mostra um exemplo?

4 respostas

Renan, tudo bem?

O Postgree funciona bem parecido com o MySQL e eu recomendo fortemente o uso de alguma lib, como a que eu vou deixar abaixo para abstrair a complexidade de I/O que você precisa lidar.

Você poderia fazer como o abaixo

var pg = require('pg');
var conString = "postgres://YourUserName:YourPassword@localhost:5432/YourDatabase";


var client = new pg.Client(conString);
client.connect();


//queries are queued and executed one after another once the connection becomes available
var x = 1000;


while (x > 0) {
    client.query("INSERT INTO junk(name, a_number) values('Ted',12)");
    client.query("INSERT INTO junk(name, a_number) values($1, $2)", ['John', x]);
    x = x - 1;
}


var query = client.query("SELECT * FROM junk");
//fired after last row is emitted


query.on('row', function(row) {
    console.log(row);
});


query.on('end', function() {
    client.end();
});


/*exemplo retirado do stackoverflow https://stackoverflow.com/questions/9205496/how-to-make-connection-to-postgres-via-node-js*/

Mais uma vez, devo te recomendar usar uma lib pra abstrair tudo isso, por que este exemplo acima é apenas um starter. Eu não sou muito acostumado com o PG, mas estes exemplos devem resolver seu problema

Seguem abaixo um tutorial e uma lib pra trabalhar com ele e o express

allan fiz o seguinte codigo:

var pg = require('pg');
var conString = "postgres://postgres:cancel12@localhost:5432/testeapi";


var client = new pg.Client(conString);
client.connect();

ate aqui tudo bem...

Quando eu faço uma requisição ele retorna o seguinte erro:

Servidor rodando na porta 3000.
processando uma requisicao de um novo pagamento
TypeError: app.persistencia.connectionFactory is not a function
    at C:\Users\Ronald\Desktop\conciliador api\controllers\pagamentos.js:29:39
    at Layer.handle [as handle_request] (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\route.js:131:13)
    at Route.dispatch (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\index.js:277:22
    at Function.process_params (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\index.js:330:12)
    at next (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\index.js:271:10)
    at C:\Users\Ronald\Desktop\conciliador api\node_modules\express-validator\lib\express_validator.js:291:5
    at Layer.handle [as handle_request] (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\index.js:312:13)
    at C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\index.js:280:7
    at Function.process_params (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\index.js:330:12)
    at next (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\index.js:271:10)
    at jsonParser (C:\Users\Ronald\Desktop\conciliador api\node_modules\body-parser\lib\types\json.js:94:7)
    at Layer.handle [as handle_request] (C:\Users\Ronald\Desktop\conciliador api\node_modules\express\lib\router\layer.js:95:5)

Cara, o error está em connectionFactory is not a function. Onde está essa função? Tem como colocar o código do arquivo onde encontra-se a função?:

solução!

A conectionFactory esta assim:

var pg = require('pg');
var conString = "postgres://postgres:cancel12@localhost:5432/testeapi";


var client = new pg.Client(conString);
client.connect();