Как я могу прочитать большой объект 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();
К сожалению, это печатает один раз, а затем зависает.