ECONNREFUSED 127.0.0.1:5432 RDS,Postgres

时间:2020-04-30 19:53:51

标签: aws-lambda amazon-rds aws-serverless node-postgres

我一直在这个错误上停留很长时间,并且正在伸出手来看看是否有人知道该怎么做!

我要使用Lambda创建端点,在命中时,首先将合同插入在RDS上运行的postgres数据库中,然后将消息内容插入同一数据库中(然后使用SES发送电子邮件,我已经弄清楚那部分了)。我想要做的是将一个新的postgres池传递到下面的send message函数中,但是每次这样做,并尝试访问数据库时,我得到一个Error: connect ECONNREFUSED 127.0.0.1:5432 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)。这是当我离线运行无服务器时。最初的SQL查询运行,但第二个则没有。

我非常感谢任何指导,我在下面粘贴了相关的代码片段。这是我第一次使用JavaScript做任何事情,所以这可能是一个非常愚蠢的问题

contracts.js

const db = require('../db_connect');
const messages = require('./messages');

//POST endpoint to create a generic contract, it's worth keeping in mind that whenever we create a contract, it will always default to false for field isFinished
module.exports.createContract = (event, context, callback) => {
    context.callbackWaitsForEmptyEventLoop = false;

    const reqBody = JSON.parse(event.body);
    const influencerID = reqBody.influencerID;
    const buyerID = reqBody.buyerID;
    const monetaryValue = reqBody.monetaryValue;
    const charityID = reqBody.charityID;

    db.query('INSERT INTO contracts(influencer_id, buyer_id, monetary_value, charity_id, is_finished) VALUES($1, $2, $3, $4, false)', [influencerID, buyerID, monetaryValue, charityID])
        .then(res => {
            callback(null, {
                statusCode: 200,
                body: 'successfully inserted contract'
            })
            messages.sendMessage(db, reqBody, buyerID, influencerID)
        })
         .catch(e => {
            console.log(e);
            callback(null, {
                statusCode: e.statusCode || 500,
                body: 'Error:' + e
            });
        }); 

};

messages.js

var dotenv = require('dotenv').config();
var aws = require('aws-sdk')
const db = require('../db_connect');


function sendMessage(reqBody, senderID, receiverID) {

  const messageBody = reqBody.messageBody;
  const timestamp = Date.now();

  var receiverEmail;

  db.query("SELECT e_mail FROM users WHERE user_id = $1", [receiverID])
  .then(res => {
    console.log(res)
    receiverEmail = res.rows[0]
    console.log("this is the new email --> ", receiverEmail)
  })
  .catch(e =>{
    throw console.error(e);
  })
}

0 个答案:

没有答案