Połączenie z bazą danych za pomocą Node.js i PostgreSQL

programowanie
#1

Hejka.
W ramach projektu na studia, postanowiłem napisać coś ciekawszego i rzuciłem się na głęboką wodę Node.js. Ogólny zamysł był taki, żeby apka łączyła się z uczelnianym hostem psql.wmi.amu.edu.pl i wyświetliła zawartość tabeli. Utworzyłem dwa pliki:
index.js

const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const db = require("./queries");
const port = 3000;

app.use(bodyParser.json());
app.use(
	bodyParser.urlencoded({
		extended: true,
	})
);
app.get("/", (_request, response) => {
	response.json({ info: "Node.js, Express, and Postgres API" });
});

app.get("/films", db.getFilms);

app.listen(port, () => {
	console.log(`App running on port ${port}.`);
});

queries.js

const Pool = require("pg").Pool;
const pool = new Pool({
	user: "dbad_s444406",
	host: "psql.wmi.amu.edu.pl",
	database: "dbad_s444406",
	password: haslo moge podac indywidualnie,
	port: 5432,
});

const getFilms = (request, response) => {
	pool.query("SELECT * FROM films", (error, results) => {
		if (error) {
			throw error;
		}
		response.status(200).json(results.rows);
	});
};
module.exports = {
	getFilms,
};

Odpalana apka, przy wpisaniu http://localhost:3000/films zwraca jednak błąd i w terminalu wywala się coś takiego:
error: no pg_hba.conf entry for host “10.84.9.6”, user “dbad_s444406”, database “dbad_s444406”, SSL off
Tak obecnie wygląda mój plik pg_hba:

host  all  all 0.0.0.0/0 md5
 **# TYPE  DATABASE        USER            ADDRESS   $**

 **# "local" is for Unix domain socket connections on$**
 local   all             all                       $
 **# IPv4 local connections:**
 host    all             all             127.0.0.1/$
 **# IPv6 local connections:**
 host    all             all             ::1/128   $

Próbowałem już wiele, głównie tego co znalazłem tutaj: https://dba.stackexchange.com/questions/83984/connect-to-postgresql-server-fatal-no-pg-hba-conf-entry-for-host
Jednak to nadal nie pomogło, więc mam nadzieje, że ktoś z Was będzie może wiedział, co tutaj się wysypuje ^^

#2

Czy łączysz się z sieci uczelnianej, czy domowej? Wygląda na to, że serwer z którym się łączysz dopuszcza połączenia tylko z niektórych adresów IP

to jest plik na kompie u Ciebie, czy na serwerze?

#3

Plik jest u mnie na komputerze, a jestem podłączony przez VPN z siecią WMI

#4

Hmm, wydaje mi się, że to jest sprawa, którą mogą pomóc Ci rozwiązać admini labsów WMI - napisz do nich na IRC:

https://labsold.wmi.amu.edu.pl/users

(albo możesz udać się osobiście :wink: )

#5

Wow! Nice to know, ze mamy wgl taki kanał :joy:
Dzięki, w takim razie odezwę się do nich ^^

1 Like
#6

Robiłem ten sam projekt na BADach.
Zerknij jak masz ochotę:

Może coś ci to pomoże.

2 Likes
#7

Dzieki @micsta!
W każdym razie, odpuscilem tego posgreSQL, przenioslem sie na MySQL i zrobilem taki prosty programik :smiley:
Ale przejrzę w wolnej chwili co i jak, i mam nadzieje, ze bede mogl sie na tym chwalic na githubie jak Ty ^^

1 Like