javascript - nodejs下载解压后的文件
本文介绍了javascript - nodejs下载解压后的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
nodejs怎么实现下载一个zip,直接解压后保存到指定目录?
解决方案
server.js
const express = require("express");
const app = express();
const path = require('path');
const fs = require('fs');
app.get('/download', function(req, res){
const zipFilePath = path.join(__dirname, '../public/zipFile.zip'); // your file path
fs.createReadStream(zipFilePath).pipe(res)
})
app.listen(3000, function(err) {
if(err) console.error(err);
console.log("OK");
});
client.js
const http = require("http");
const path = require('path');
const fs = require('fs');
const decompress = require('decompress');
const options = {
hostname: 'localhost',
port: 3000,
path: '/download',
method: 'GET'
};
var req = http.request(options, function(res) {
const zipFilePath = path.join(__dirname, './zipFileDownload.zip')
const writeStream = fs.createWriteStream(zipFilePath)
res.on('data', function (chunk) {
writeStream.write(chunk)
});
res.on('end', function (chunk) {
writeStream.end(chunk)
});
writeStream.on('finish', function() {
const decompressFolderPath = path.join(__dirname, 'contents') // your decompress folder
decompress(zipFilePath, decompressFolderPath).then(files => console.log('done'))
})
});
req.on('error', function(e) {
console.error('problem with request: ' + e.message);
});
// write data to request body
// req.write(JSON.stringify(body)); // if you have query data or body
req.end();
解压的库有很多,我这里只是列举一个给你,adm-zip等,可以自己找找,如果还有问题,留言吧!写的太仓促了,待优化哈!
这篇关于javascript - nodejs下载解压后的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文