Как читать большой объект PostgreSQL в Node.js? - PullRequest
0 голосов
/ 11 июня 2019

Как я могу прочитать большой объект PostgreSQL в Node.js?

const { Pool } = require('pg');
const { LargeObjectManager } = require('pg-large-object');

async function main() {
  const db = new Pool();
  try {
    const connection = await db.connect();
    connection.query('BEGIN');
    try {
      const manager = new LargeObjectManager({ pg: connection });
      const [_, stream] = await manager.openAndReadableStreamAsync(334410);
      let resolve, reject;
      const end = new Promise((res, rej) => {
        resolve = res;
        reject = rej;
      });
      stream.on('error', reject);
      stream.on('readable', () => {
        const data = stream.read();
        if (data) {
          console.log(data.length);
        } else {
          console.log('done');
          resolve();
        }
      });
      await end;
    } finally {
      connection.query('ROLLBACK');
    }
  } finally {
    await db.end();
  }
}

main();

К сожалению, это печатает один раз, а затем зависает.

...