我对 node.js 很陌生,我正在尝试发回一个包含 JSON 结果的 zip 文件。我一直在试图弄清楚如何做到这一点,但没有得到预期的结果。
我正在使用 NodeJS、ExpressJS、LocomotiveJS、Mongoose 和 MongoDB。
由于我们正在构建一个面向移动的应用程序,因此我正在尝试尽可能多地节省带宽。
移动应用程序的每日初始加载可能是一个很大的 JSON 文档,因此我想在将其发送到设备之前对其进行压缩。如果可能的话,我想在内存中做所有事情以避免磁盘 I/O。
到目前为止,我尝试了 3 个库:
- 管理员压缩包
- 节点压缩
- 压缩流
我取得的最好结果是使用 node-zip。这是我的代码:
return Queue.find({'owners': this.param('id')}).select('name extra_info cycle qtype purge purge_time tasks').exec(function (err, docs) {
if (!err) {
zip.file('queue.json', docs);
var data = zip.generate({base64:false,compression:'DEFLATE'});
res.set('Content-Type', 'application/zip');
return res.send(data);
}
else {
console.log(err);
return res.send(err);
}
});
结果是下载的 zip 文件,但内容不可读。
我很确定我把事情搞混了,但到目前为止我不知道如何继续。
有什么建议吗?
提前感谢