Postgres Докер Узел/Экспресс: Ошибка: Соединение неожиданно прервано

#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) не может разрешить это соединение?