【发布时间】:2019-12-20 16:47:41
【问题描述】:
我有一个函数可以通过单击按钮从 postgres 获取 json 数据。我想要的是将该数据保存在一个压缩文件中。我是 nodeJS 的新手,所以我不完全确定 writestreams 和管道是如何工作的。这就是我所拥有的:
module.exports.fileDownload = function(req, res){
var id = req.query.id;
postgresService.getJsonData(id)
.then(response => {
const writer = fs.createWriteStream('my_file.json');
// logger.info(response);
// logger.info(writer);
writer.write(response)
res.pipe(writer);
})
.catch(err => {
logger.info('Something went wrong');
logger.info(err);
})
}
我想一旦我至少获得了文件,我就会想出一种使用 zlib 的方法,但即使在这个阶段,虽然我的记录器正确地显示了响应和编写器,但它最终还是出现在了 catch 块中。我一直看到的错误是:
TypeError [ERR_INVALID_ARG_TYPE]:“块”参数必须是字符串或缓冲区类型之一
我应该提到响应是一个相当大的 json 对象。
我已经玩过代码,但无法让它工作。一些消息来源提到您需要创建一个读取流以通过管道传输到写入流,但我不确定在我的代码中的哪个位置执行此操作。
谁能帮忙?
【问题讨论】:
-
你试过
JSON.stringifying js obejct 吗?
标签: node.js