javascript - nodejs下载解压后的文件

查看:123
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆