Sono abbastanza nuovo su node.js e sto tentando di inviare un file zip contenente i risultati JSON. Ho cercato di capire come farlo, ma non ho avuto i risultati attesi.Risposta JSON Zip in node.js
Sto utilizzando NodeJS, ExpressJS, LocomotiveJS, Mongoose e MongoDB.
Dato che stiamo costruendo un'applicazione orientata al mobile, sto cercando di salvare il maggior numero di banda possibile.
Il carico iniziale giornaliero per l'app mobile potrebbe essere un grande documento JSON, quindi voglio comprimerlo prima di inviarlo al dispositivo. Se possibile mi piacerebbe farlo tutto in memoria per evitare l'I/O del disco.
Ho provato con 3 biblioteche finora:
- ADM-zip
- nodo-zip
- zipstream
Il miglior risultato ottenuto è usando nodo-zip. Qui è il mio codice:
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);
}
});
Il risultato è un file zip scaricato, ma il contenuto è illeggibile.
Sono quasi sicuro che sto confondendo le cose, ma a questo punto non sono sicuro di come procedere.
Qualche consiglio?
Grazie a advace
Grazie chovy, ha funzionato! – AkerbeltZ
E 'stato facile. – prototype
Dove devo mantenere il middleware express.compress()? prima di percorsi e contenuti statici o dopo di loro? – arunkjn