Error: connect ECONNREFUSED 127.0.0.1:5432

Error: connect ECONNREFUSED 127.0.0.1:5432

我正在尝试向我部署在 Heroku 上的 Node + Express 服务器访问的 postgreSQL 数据库发出请求。这是我在 运行 'heroku logs' 时收到的错误:错误:连接 ECONNREFUSED 127.0.0.1:5432,以及其他一些错误。我在前端使用 axios 来发出请求。

这是我的 server.js 文件:

// express
const express = require('express');
// environment variables
require('dotenv').config();
// data base connector
const db = require('./db');
// cors
const cors = require('cors');

// express instance 
const app = express();


// use cors
app.use(cors());

// attach data to req.body
app.use(express.json());

// get all articles 
app.get('/api/v1/articles', async (req, res, next) => {

    try {

        // query database
        const results = await db.query('SELECT * FROM articles;');

        // send results
        res.status(200).json({
            results: results.rows
        });

        // handle error
    } catch (err) {

        next(err);
    }
});

// get individual article 
app.get('/api/v1/articles/:id', async (req, res, next) => {

    try {

        // query database
        const article = await db.query(`SELECT * FROM articles WHERE id = ;`, [req.params.id]);

        // send back data
        res.status(200).json({
            article: article
        });

        // handle error
    } catch (err) {

        next(err);
    }
});

// get article's comments
app.get('/api/v1/articles/:id/comments', async (req, res, next) => {

    try {

        // query database
        const comments = await db.query(`SELECT * FROM comments WHERE article_id = ;`, [req.params.id]);

        // send back data
        res.status(200).json({
            comments: comments
        });

        // handle error
    } catch (err) {

        next(err);
    }
});

// add comment 
app.post('/api/v1/articles/:id/comments', async (req, res, next) => {

    try {

        // post comment in database
        const comment = await db.query(`INSERT INTO comments (article_id, author, text) 
        VALUES (, , ) returning *;`, [req.body.article_id, req.body.author, req.body.text]);

        // send comment back
        res.status(201).json({
            comment
        });

        // handle error
    } catch (err) {
        
        next(err);
    } 
})

// listen
const port = process.env.PORT || 3001;

app.listen(port, () => {
    console.log(`Server now listening on PORT ${port}`);
});

我应该使用 pg 库连接到我的数据库,并且池从 .env 文件获取凭据。我能够连接到 pgAdmin 中的数据库并编写查询、制作表格等。 非常感谢任何帮助

检查您的数据库连接配置。该错误表明它试图在 127.0.0.1 上连接到 PostgreSQL,这是 LOOPBACK ip 地址。这意味着正在尝试访问您机器上的服务器。您需要通过为 PostgreSQL 所在的服务器指定正确的地址来配置连接 运行