【发布时间】:2015-04-27 17:28:17
【问题描述】:
我有一个 jrmxl(Jasper 报告)文件以二进制格式 (bytea) 存储在 postgresql 数据库中。我正在尝试读取该文件并将其转换为纯 jrmxl (XML) 文件并将其保存在磁盘上。
这是我迄今为止尝试过的
var fs = require('fs');
exports.saveFile = function (pg) {
//pg is the postgres connection to query the db
pg.query('Select data from data_file where id = 123', function (err, result) {
if (err) {
console.log(err);
return;
}
var data = result.rows[0].data;
//Buffer.isBuffer(data) === true
// I can get the data here. Now I try to convert it into text
var file = data.toString('utf8');
fs.writeFile('report.jrxml',file, function (er) {
if (er) {
console.log('an error occurred while saving the file');
return;
}
console.log('file saved');
}}
});
}
如果我运行上面的代码,文件会被保存,但它是二进制的。 如何将其转换为文本格式的纯 xml 文件,例如可以在 ireport 中导入?
【问题讨论】:
-
第三个参数应该是一个对象:
fs.writeFile('path', file, {encoding: 'utf8'}, function...) -
感谢您的评论,我刚试过,但同样的问题仍然存在。
标签: javascript node.js postgresql jasper-reports binary-data