Node.js 节点js-fs.readFile&;fs.writeStream
我正在编写一个图库系统,该系统当前在页面上显示照片列表,然后让用户可以选择下载整个图库的zip。如果这个zip文件还不存在,它是动态生成的,但在当前状态下生成它可能需要一段时间(有时大约需要一分钟)。这是我目前掌握的代码:Node.js 节点js-fs.readFile&;fs.writeStream,node.js,zip,fs,Node.js,Zip,Fs,我正在编写一个图库系统,该系统当前在页面上显示照片列表,然后让用户可以选择下载整个图库的zip。如果这个zip文件还不存在,它是动态生成的,但在当前状态下生成它可能需要一段时间(有时大约需要一分钟)。这是我目前掌握的代码: if (fs.existsSync(zipPath)) { callback(downloadPath); } else { socket.emit('preparingZip'); fs.readdir(galle
if (fs.existsSync(zipPath)) {
callback(downloadPath);
} else {
socket.emit('preparingZip');
fs.readdir(galleryPath, function(err, listOfPhotos) {
async.each(listOfPhotos, function(photo, cb) {
if (photo != 'thumbnails') {
var photoPath = galleryPath+'/'+photo;
fs.readFile(photoPath, function(err, data) {
if (err) { console.log(err); }
console.log(photoPath);
zip.file(photo, data);
cb();
});
} else {
cb();
}
}, function(err) {
if (err) { console.log(err); }
var data = zip.generate({base64:false,compression:'DEFLATE'});
fs.writeFile(zipPath, data, 'binary', function(err) {
if (err) { console.log(err); }
callback(downloadPath);
});
});
});
}
我已经读到在这个例子中不应该使用fs.writeFile,我应该使用fs.writeStream来提高效率,但是我找不到任何关于如何同时使用fs.readFile和fs.writeStream的例子。有人能解释一下我会怎么做吗
提前感谢您的帮助。最终找到了一个名为zip stream的模块,该模块非常有效(尽管文档并不精彩)。