Tôi khá mới đối với node.js và tôi đang cố gắng gửi lại tệp nén chứa kết quả JSON. Tôi đã cố gắng tìm ra cách để làm điều đó, nhưng chưa có kết quả mong đợi.Phản hồi Zip JSON trong node.js
Tôi đang sử dụng NodeJS, ExpressJS, LocomotiveJS, Mongoose và MongoDB.
Vì chúng tôi đang xây dựng một ứng dụng di động theo định hướng, tôi đang cố gắng tiết kiệm càng nhiều băng thông càng tốt.
Tải ban đầu hàng ngày cho ứng dụng dành cho thiết bị di động có thể là tài liệu JSON lớn, vì vậy tôi muốn nén nó trước khi gửi cho thiết bị. Nếu có thể tôi muốn làm mọi thứ trong bộ nhớ để tránh đĩa I/O.
Tôi đã thử với 3 thư viện cho đến nay:
- adm-zip
- nút-zip
- zipstream
Kết quả tốt nhất mà tôi đạt được là sử dụng nút-zip. Đây là mã của tôi:
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);
}
});
Kết quả là tệp zip đã tải xuống nhưng nội dung không thể đọc được.
Tôi khá chắc chắn rằng tôi đang trộn lẫn mọi thứ, nhưng đến thời điểm này tôi không chắc chắn làm thế nào để tiến hành.
Bất kỳ lời khuyên nào?
Cảm ơn bạn đã advace
Cảm ơn chovy, nó đã hoạt động! – AkerbeltZ
Yikes dễ dàng. – prototype
Tôi nên giữ phần mềm trung gian express.compress() ở đâu? trước các tuyến đường và nội dung tĩnh hoặc sau chúng? – arunkjn