#node.js #postgresql #docker
#node.js #postgresql #докер
Вопрос:
Я имею дело с проблемой соединения между моим api node/express с моим контейнером docker postgres. Я хочу объединить все в один проект docker-compose, но прежде всего мне нужно найти, как я могу подключить свой сервер к контейнеру базы данных:
src/server.ts
// import modules import express from 'express'; import dotenv from 'dotenv'; dotenv.config(); // init middleware const app: express.Application = express(); // parse requests of content-type - application/json app.use(express.json()); // parse requests of content-type - application/x-www-form-urlencoded app.use(express.urlencoded({ extended: true })); // first route app.get('/', ( req: express.Request, res: express.Response ) =gt; res.send('Welcome!')); // routes app.use(require('./routes/routes')); const port = process.env.PORT || 5000; // server listening app.listen(port, ()=gt;console.log(`Server running at port ${port}`));
src/маршруты/routes.ts
import express from 'express'; const router: express.Router = express.Router(); // controllers const controller = require('../controller/controller'); router.get('/users', controller.getUsers); module.exports = router;
src/контроллер/controller.ts
const {Pool} = require('pg'); const pool = new Pool({ host: 'localhost', user: 'user_post', password: 'user_post', database: 'users_database', // port: '5002' // default port 5432 }); // Postgres Funcions const getUsers = async (req: any, res: any) =gt; { const queryOrder = 'SELECT * FROM users_table;'; const response = await pool.query(queryOrder); res.send(response); }; module.exports = {getUsers};
Making a docker container with the following command:
docker run --name docker-postgres-nodejs -e POSTGRES_PASSWORD=user_post -e POSTGRES_USER=user_post -p 5002:5002 -d postgres:14
And the npm order to init my server:
npm run dev
It return the following error message:
Error: connect ECONNREFUSED 127.0.0.1:5432 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 5432 } [nodemon] app crashed - waiting for file changes before starting...
Я не думаю, что эта ошибка может быть вызвана кодом моего узла, но возможно ли, что моя операционная система (Ubuntu) не может разрешить это соединение?