Форматирование вывода RDS PostgreSQL в lambda node.js - PullRequest
0 голосов
/ 18 апреля 2019

PostgreSQL возвращает строки, заполняя некоторые столбцы начальными пробелами.Как предотвратить это?

Я запускаю код node.js в лямбде.

const pg = require('pg')
const pool = new pg.Pool({
    user :'****',
    host: '****-east-1.rds.amazonaws.com',
    database: 'test',
    password: '*******',
    port: 5432
})

async function query (q) {
  const client = await pool.connect()
  let res
  try {
    await client.query('BEGIN')
    try {
      res = await client.query(q)
      await client.query('COMMIT')
    } catch (err) {
      await client.query('ROLLBACK')
      throw err
    }
  } finally {
    client.release()
  }
  return res
}

exports.handler = async (event, context, callback) => {
    try {
      const { rows } = await query("select * from test_table")
      console.log(rows)
      var response = {
          "statusCode": 200,
          "headers": {
              "Content-Type" : "application/json"
          },
          "rows":JSON.parse(JSON.stringify(rows))
      };
      callback(null, response);
    } catch (err) {
      console.log('Database ' + err)
      callback(null, 'Database ' + err);
    }
};

Фактический результат:

Response:
{
  "statusCode": 200,
  "headers": {
    "Content-Type": "application/json"
  },
  "rows": [
    {
      "name": "Abhi                                              ",
      "email": "test_abhi@gmail.com"
    },
    {
      "name": "abhi2                                             ",
      "email": "abhi2@test.com"
    },
    {
      "name": "abhi23                                            ",
      "email": "abhi2@test.com"
    },
    {
      "name": "abhi25                                            ",
      "email": "abhi2@test.com"
    }
  ]
}

Expected Result:
Response:
{
  "statusCode": 200,
  "headers": {
    "Content-Type": "application/json"
  },
  "rows": [
    {
      "name": "Abhi",
      "email": "test_abhi@gmail.com"
    },
    {
      "name": "abhi2",
      "email": "abhi2@test.com"
    },
    {
      "name": "abhi23",
      "email": "abhi2@test.com"
    },
    {
      "name": "abhi25",
      "email": "abhi2@test.com"
    }
  ]
}

Любая помощь будет оченьоценили.Я новый node.js и ничего не знаю.Хотите узнать, как соединить Lambda, RDS PostgreSQL, Amazon API и node.js, просто и требует наименьшего количества кода.

...