node.js - 从插入流“返回”用于 pg-promise
问题描述
这里的目标是将RETURNING
数据流式传输INSERT INTO ....
到写入流。
IE。
const write_stream = fs.createWriteStream('file.csv')
client.query(`
INSERT INTO table1 (columns)
SELECT ...
FROM table2
RETURNING *
`)
.then(returned => {
returned.rows.pipe(write_stream)
})
这可能pg-promise
吗?
目前,来自的响应returned.rows
包含数组 [{}] 中的所有数据,因此上面的示例不起作用,因此唯一的解决方案可能需要分别插入和选择,但如果我可以简单地获得返回的结果会很棒数据。
解决方案
发布正确答案,因为问题作者选择不遵循提供的示例。
以下是如何将查询结果正确地流式传输到 csv 文件中(来自pg-promise的作者):
import QueryStream from 'pg-query-stream';
import CsvWriter from 'csv-write-stream';
import {createWriteStream} from 'fs';
const csv = new CsvWriter();
const file = createWriteStream('out.csv');
const qs = new QueryStream('select * from my_table');
await db.stream(qs, s => {
s.pipe(csv).pipe(file);
});
//=> resolves with: {processed, duration}
请参阅流方法。
推荐阅读
- java - Minecraft forge automatically sets _JAVA_OPTIONS environment variable
- kubernetes - kube-dns: resolve
success, resolve . failed - python - Lightgbm 提前停止无法正常工作
- jenkins - Jenkins Email Notification to Build-Requestor (URL-Trigger)
- ios - Building static library using Xcode 11. Get “error: Unable to find a suitable library in the XCFramework"
- c# - FirefoxWebdriver 没有数据可用于编码 437
- node.js - 无法在 NodeJS/express 中获取 /api/users/logout 方向
- php - 特殊常量 ::class 可以与变量一起使用吗?
- webpack - Webpack 4 升级 - 怀疑 mini-css-extract-plugin - CSS 从不加载 - Uncaught SyntaxError: Unexpected token
- jquery - 如何在 jQuery 中单击一次切换多个元素?