ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:5432
at Client._connectionCallback (/home/gene/capital_greek_project/api/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:131:24)
at Client._handleErrorWhileConnecting (/home/gene/capital_greek_project/api/node_modules/pg/lib/client.js:305:19)
at Client._handleErrorEvent (/home/gene/capital_greek_project/api/node_modules/pg/lib/client.js:315:19)
at Connection.emit (node:events:527:28)
at Socket.reportStreamError (/home/gene/capital_greek_project/api/node_modules/pg/lib/connection.js:52:12)
at Socket.emit (node:events:527:28)
at emitErrorNT (node:internal/streams/destroy:157:8)
at emitErrorCloseNT (node:internal/streams/destroy:122:3)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
parent: Error: connect ECONNREFUSED 127.0.0.1:5432
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1187:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 5432
}
I’ve been getting this error and I’ve been having a hard to time trying to connect to postgres using node js. I’m using Sequelize to define my models, I feel like it has something to do with my Ip address or my local host machine but I’m not sure how to navigate to it. Do I need to install postgres on to my machine ?
//*db.config.js
module.exports = {
HOST: 'localhost',
USER: 'postgres',
PASSWORD: '123',
DB: 'capital-greek',
dialect: 'postgres',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000,
},
};
//server.js*
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
let corsOptions = {
origin: 'http://localhost:8081',
};
app.use(cors(corsOptions));
// parse requests of content-type - application/json
app.use(bodyParser.json());
// parse requests of content-type - application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));
// database
const db = require('./app/models');
const Role = db.role;
// db.sequelize.sync()
// force: true will drop the table if it already exists
db.sequelize.sync({ force: true }).then(() => {
console.log('Drop and Resync Database with { force: true }');
initial();
});
// simple route
app.get('/', (req, res) => {
res.json({ message: 'Welcome to bezkoder application.' });
});
// routes
require('./app/routes/auth.routes.js')(app);
require('./app/routes/users.routes.js')(app);
// set port, listen for requests
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}.`);
});
function initial() {
Role.create({
id: 1,
name: 'user',
});
Role.create({
id: 2,
name: 'moderator',
});
Role.create({
id: 3,
name: 'admin',
});
}
//models/index.js
const config = require('../config/db.config.js');
const Sequelize = require('sequelize');
const sequelize = new Sequelize(config.DB, config.USER, config.PASSWORD, {
host: config.HOST,
dialect: config.dialect,
operatorsAliases: 0,
pool: {
max: config.pool.max,
min: config.pool.min,
acquire: config.pool.acquire,
idle: config.pool.idle,
},
});
const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.user = require('../models/user.model.js')(sequelize, Sequelize);
db.role = require('../models/role.model.js')(sequelize, Sequelize);
db.role.belongsToMany(db.user, {
through: 'user_roles',
foreignKey: 'roleId',
otherKey: 'userId',
});
db.user.belongsToMany(db.role, {
through: 'user_roles',
foreignKey: 'userId',
otherKey: 'roleId',
});
db.ROLES = ['user', 'admin', 'moderator'];
module.exports = db;
2
Answers
I finally found a solution that worked for me from another post, here is the link https://stackoverflow.com/a/31647044/18759005 . The problem was my postgres server was down. I have another solution to get the postgres server running which is from this link https://stackoverflow.com/a/49860500/18759005 , I only implemented step 1 & 2 . Both of these links are from the same question that is similar to mine.
Are you sure that your Postgres server allows for connection from your IP address?
Try modifying your’s
pg_hba.conf
file by adding following lines:Section for this should be located near 86 line
You could find this file under:
C:Program FilesPostgreSQL(your postgres version)data
There is possibility that your configuration disallows connection from
127.0.0.1
(localhost).You should probably replace
192.168.1.11
with your local ipAnd I’m guessing that from this error description:
Error: connect ECONNREFUSED 127.0.0.1:5432