Introduction to Extract Zip API
The extract-zip library is a robust solution for all your zip file extraction needs in Node.js. This efficient and easy-to-use library streamlines the process of extracting zip files, making it an indispensable tool for developers. With a variety of useful APIs, extract-zip
enhances your workflow and ensures that you can manage zip files effortlessly.
Basic Usage
To get started with extract-zip
, you need to install it first:
npm install extract-zip
API Overview
Let’s dive into some of the essential functions provided by extract-zip
:
Simple Extraction
This is the most straightforward way to extract a zip file:
const extract = require('extract-zip'); async function extractZip(filePath, outputPath) { try { await extract(filePath, { dir: outputPath }); console.log('Extraction complete'); } catch (err) { console.error('Error during extraction', err); } } extractZip('path/to/your.zip', 'output/path');
Overwriting Files
You can control whether existing files should be overwritten by setting the overwrite
option:
const extract = require('extract-zip'); async function extractZip(filePath, outputPath) { try { await extract(filePath, { dir: outputPath, overwrite: true }); console.log('Extraction complete with overwrite'); } catch (err) { console.error('Error during extraction', err); } } extractZip('path/to/your.zip', 'output/path');
Extracting Specific Files
If you only need to extract particular files from a zip archive, you can specify them:
const extract = require('extract-zip'); async function extractSpecificFiles(filePath, outputPath, filesToExtract) { try { await extract(filePath, { dir: outputPath, onEntry: (entry, zipfile) => { if (!filesToExtract.includes(entry.fileName)) { entry.autodrain(); } } }); console.log('Specific files extraction complete'); } catch (err) { console.error('Error during extraction', err); } } extractSpecificFiles('path/to/your.zip', 'output/path', ['file1.txt', 'file2.txt']);
Handling Errors
Proper error handling is crucial. You can manage errors effectively with the extract-zip
API:
const extract = require('extract-zip'); async function extractZipWithErrorHandling(filePath, outputPath) { try { await extract(filePath, { dir: outputPath }); console.log('Extraction complete'); } catch (err) { if (err.message === 'Could not find or read file') { console.error('File not found'); } else { console.error('Unknown error', err); } } } extractZipWithErrorHandling('path/to/your.zip', 'missing/output/path');
Application Example
Here’s a simple example of how you can integrate extract-zip
into a Node.js application to manage file uploads:
const express = require('express'); const multer = require('multer'); const extract = require('extract-zip'); const path = require('path'); const fs = require('fs'); const app = express(); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('zipfile'), async (req, res) => { if (!req.file) { return res.status(400).send('No file uploaded'); } const outputPath = path.join(__dirname, 'extracted', path.basename(req.file.path, '.zip')); try { await extract(req.file.path, { dir: outputPath }); fs.unlinkSync(req.file.path); res.send('File extracted successfully'); } catch (err) { res.status(500).send('Error during extraction'); } }); app.listen(3000, () => { console.log('Server running on http://localhost:3000'); });
By following these examples, you can see how powerful and versatile the extract-zip
library can be when managing zip files in your Node.js applications.
Hash: 767baf3ef801957728f30d88ca8838345ec9a07627a1356bd0d63a7b091cf57d