1
我想用存檔器創建存檔並在其中放入一些文件。客戶端,用戶將點擊一個按鈕,它會生成存檔(服務器端)。在發送給客戶端之前創建一個存檔並添加文件
我正在使用Express.js,這是我的服務器端代碼,將生成存檔。我做了這樣的事情:
app.get('/export/siteoccupancy', function(req,res){
if(_.isEmpty(req.query)){
res.status(404).send('requires a start and end date');
}else{
//getting paramas
var sDate = req.query.startDate;
var eDate = req.query.endDate;
}
var fs = require('fs');
var archiver = require('archiver');
var archive = archiver('zip');
archive.on('err',function(err){
res.status(500).send({error : err.message});
});
res.on('close',function(){
console.log('Archive size : %d b',archive.pointer());
return res.status(200).send('OK').end();
});
res.attachment('data-export.zip');
archive.pipe(res);
var stream = fs.createWriteStream("data-report.txt')");
stream.once('open',function(fd) {
stream.write('test1');
stream.write('\n test2');
stream.write('\n test3');
stream.end();
});
archive.append(stream);
archive.finalize();
});
這對我來說是全新的,我想了解爲什麼控制檯告訴我流文件是空的?
錯誤:追加:輸入的名稱必須在Archiver.append
是一個非空字符串值問候
看到這個[post](http://codewinds.com/blog/2013-08-19-nodejs-writable-streams.html)我不認爲你需要'一次('打開',fn)' –