I am encountering an error while trying to publish my Node.js application with Render. The application queries data from PostgreSQL, and during the publishing process, I receive the following error:
<code> Connection error: AggregateError [ECONNREFUSED]:
at internalConnectMultiple (node:net:1116:18)
at afterConnectMultiple (node:net:1683:7) {
code: 'ECONNREFUSED',
[errors]: [
Error: connect ECONNREFUSED ::1:5432
at createConnectionError (node:net:1646:14)
at afterConnectMultiple (node:net:1676:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 5432
},
Error: connect ECONNREFUSED 127.0.0.1:5432
at createConnectionError (node:net:1646:14)
at afterConnectMultiple (node:net:1676:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 5432
}
]
}
</code>
<code> Connection error: AggregateError [ECONNREFUSED]:
at internalConnectMultiple (node:net:1116:18)
at afterConnectMultiple (node:net:1683:7) {
code: 'ECONNREFUSED',
[errors]: [
Error: connect ECONNREFUSED ::1:5432
at createConnectionError (node:net:1646:14)
at afterConnectMultiple (node:net:1676:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 5432
},
Error: connect ECONNREFUSED 127.0.0.1:5432
at createConnectionError (node:net:1646:14)
at afterConnectMultiple (node:net:1676:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 5432
}
]
}
</code>
Connection error: AggregateError [ECONNREFUSED]:
at internalConnectMultiple (node:net:1116:18)
at afterConnectMultiple (node:net:1683:7) {
code: 'ECONNREFUSED',
[errors]: [
Error: connect ECONNREFUSED ::1:5432
at createConnectionError (node:net:1646:14)
at afterConnectMultiple (node:net:1676:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 5432
},
Error: connect ECONNREFUSED 127.0.0.1:5432
at createConnectionError (node:net:1646:14)
at afterConnectMultiple (node:net:1676:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 5432
}
]
}
index.js file
<code> require('dotenv').config();
const express = require("express")
const app = express()
const path = require("path")
const tasarim = path.join(__dirname,'../tasarim')
const fs = require('fs');
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log('uygulama başarılı bir şekilde açılıyor ');
});
app.use('/tasarim', express.static('tasarim'));
app.use('/images', express.static('images'));
app.engine('html', require('ejs').renderFile);
app.use(express.json())
app.set("view engine","ejs")
app.set("views",tasarim)
app.use(express.urlencoded({
extended:false
}))
const { Client } = require('pg');
const client = new Client({
host: process.env.DB_HOST,
port: process.env.DB_PORT,
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
});
client.connect()
.then(() => console.log('PostgreSQL veritabanına bağlandı'))
.catch(err => console.error('Bağlantı hatası', err));
app.get("/", async (req, res) => {
try {
let query = 'SELECT * FROM urunler WHERE 1=1';
const kategori = req.query.kategori;
const fiyat = req.query.fiyat;
if (kategori) {
query += ` AND urun_adi = '${kategori}'`;
}
if (fiyat) {
if (fiyat === '0-100') {
query += ' AND fiyat BETWEEN 0 AND 100';
} else if (fiyat === '100-200') {
query += ' AND fiyat BETWEEN 100 AND 200';
} else if (fiyat === '200-500') {
query += ' AND fiyat BETWEEN 200 AND 500';
} else if (fiyat === '500-1000') {
query += ' AND fiyat BETWEEN 500 AND 1000';
} else if (fiyat === '1000') {
query += ' AND fiyat > 1000';
}
}
const result = await client.query(query);
const urunler = result.rows;
const base64Images = urunler.map(urun => {
return urun.fotograf.toString('base64');
});
res.render(path.join(__dirname, '..', 'tasarim', 'urunler.ejs'), {
urunler,
base64Images,
});
} catch (err) {
console.error('Veri alınamadı:', err);
res.status(500).send('Veri alınamadı');
}
});
</code>
<code> require('dotenv').config();
const express = require("express")
const app = express()
const path = require("path")
const tasarim = path.join(__dirname,'../tasarim')
const fs = require('fs');
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log('uygulama başarılı bir şekilde açılıyor ');
});
app.use('/tasarim', express.static('tasarim'));
app.use('/images', express.static('images'));
app.engine('html', require('ejs').renderFile);
app.use(express.json())
app.set("view engine","ejs")
app.set("views",tasarim)
app.use(express.urlencoded({
extended:false
}))
const { Client } = require('pg');
const client = new Client({
host: process.env.DB_HOST,
port: process.env.DB_PORT,
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
});
client.connect()
.then(() => console.log('PostgreSQL veritabanına bağlandı'))
.catch(err => console.error('Bağlantı hatası', err));
app.get("/", async (req, res) => {
try {
let query = 'SELECT * FROM urunler WHERE 1=1';
const kategori = req.query.kategori;
const fiyat = req.query.fiyat;
if (kategori) {
query += ` AND urun_adi = '${kategori}'`;
}
if (fiyat) {
if (fiyat === '0-100') {
query += ' AND fiyat BETWEEN 0 AND 100';
} else if (fiyat === '100-200') {
query += ' AND fiyat BETWEEN 100 AND 200';
} else if (fiyat === '200-500') {
query += ' AND fiyat BETWEEN 200 AND 500';
} else if (fiyat === '500-1000') {
query += ' AND fiyat BETWEEN 500 AND 1000';
} else if (fiyat === '1000') {
query += ' AND fiyat > 1000';
}
}
const result = await client.query(query);
const urunler = result.rows;
const base64Images = urunler.map(urun => {
return urun.fotograf.toString('base64');
});
res.render(path.join(__dirname, '..', 'tasarim', 'urunler.ejs'), {
urunler,
base64Images,
});
} catch (err) {
console.error('Veri alınamadı:', err);
res.status(500).send('Veri alınamadı');
}
});
</code>
require('dotenv').config();
const express = require("express")
const app = express()
const path = require("path")
const tasarim = path.join(__dirname,'../tasarim')
const fs = require('fs');
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log('uygulama başarılı bir şekilde açılıyor ');
});
app.use('/tasarim', express.static('tasarim'));
app.use('/images', express.static('images'));
app.engine('html', require('ejs').renderFile);
app.use(express.json())
app.set("view engine","ejs")
app.set("views",tasarim)
app.use(express.urlencoded({
extended:false
}))
const { Client } = require('pg');
const client = new Client({
host: process.env.DB_HOST,
port: process.env.DB_PORT,
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
});
client.connect()
.then(() => console.log('PostgreSQL veritabanına bağlandı'))
.catch(err => console.error('Bağlantı hatası', err));
app.get("/", async (req, res) => {
try {
let query = 'SELECT * FROM urunler WHERE 1=1';
const kategori = req.query.kategori;
const fiyat = req.query.fiyat;
if (kategori) {
query += ` AND urun_adi = '${kategori}'`;
}
if (fiyat) {
if (fiyat === '0-100') {
query += ' AND fiyat BETWEEN 0 AND 100';
} else if (fiyat === '100-200') {
query += ' AND fiyat BETWEEN 100 AND 200';
} else if (fiyat === '200-500') {
query += ' AND fiyat BETWEEN 200 AND 500';
} else if (fiyat === '500-1000') {
query += ' AND fiyat BETWEEN 500 AND 1000';
} else if (fiyat === '1000') {
query += ' AND fiyat > 1000';
}
}
const result = await client.query(query);
const urunler = result.rows;
const base64Images = urunler.map(urun => {
return urun.fotograf.toString('base64');
});
res.render(path.join(__dirname, '..', 'tasarim', 'urunler.ejs'), {
urunler,
base64Images,
});
} catch (err) {
console.error('Veri alınamadı:', err);
res.status(500).send('Veri alınamadı');
}
});
.env file
<code> DB_USER=postgres
DB_PASSWORD=1234
DB_NAME=postgres
DB_HOST=localhost
DB_PORT=5432
</code>
<code> DB_USER=postgres
DB_PASSWORD=1234
DB_NAME=postgres
DB_HOST=localhost
DB_PORT=5432
</code>
DB_USER=postgres
DB_PASSWORD=1234
DB_NAME=postgres
DB_HOST=localhost
DB_PORT=5432
I would like to understand the cause of this error and how to resolve it. My Node.js application fetches data from PostgreSQL successfully, but encounters this error when trying to publish it using Render. What could be the possible reasons for this error, and what steps can I take to resolve it? Any insights or suggestions would be greatly appreciated. Thank you!