Multer JavaScript (Node.js): पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Multer JavaScript (Node.js): पूरी गाइड उदाहरणों के साथ

1. यह क्या है और क्यों ज़रूरी है

Multer Node.js के लिए एक लोकप्रिय middleware लाइब्रेरी है, जो multipart/form-data को प्रोसेस करने के लिए बनाई गई है — यह वह फॉर्मेट है जो HTML फॉर्म के ज़रिए फाइल अपलोड करते समय उपयोग होता है। सामान्य body-parser मॉड्यूल के विपरीत, जो केवल JSON और URL-एन्कोडेड डेटा को संभालता है, Multer मल्टीपार्ट रिक्वेस्ट को पार्स कर सकता है, उनमें से फाइलें निकाल सकता है और उन्हें सर्वर पर सेव कर सकता है (मेमोरी या डिस्क में)। यह लाइब्रेरी busboy मॉड्यूल के ऊपर बनी है और पथ, फाइल नाम, टाइप फ़िल्टरिंग और साइज़ सीमा सेट करने के लिए एक आसान API प्रदान करती है।

Multer क्यों ज़रूरी है? किसी भी वेब एप्लिकेशन में जहाँ उपयोगकर्ता अवतार, दस्तावेज़, इमेज या वीडियो अपलोड कर सकता है, multipart/form-data को प्रोसेस करना ज़रूरी होता है। Express.js (Node.js का सबसे लोकप्रिय फ्रेमवर्क) में इस फॉर्मेट के लिए बिल्ट-इन सपोर्ट नहीं है, इसलिए Multer एक अनिवार्य टूल बन जाता है। यह डेवलपर को बिज़नेस लॉजिक पर ध्यान केंद्रित करने देता है, न कि बाइनरी डेटा के लो-लेवल पार्सिंग पर।

Multer एक साथ एक या कई फाइलें अपलोड करने, फॉर्म फील्ड के साथ काम करने, कस्टम फाइल नाम जनरेट करने, MIME-टाइप और एक्सटेंशन के आधार पर फ़िल्टर करने, और अपलोड डेटा की साइज़ सीमा लगाने का समर्थन करता है। अपनी लचीली कॉन्फ़िगरेशन की बदौलत, यह लाइब्रेरी सरल प्रोजेक्ट्स (जैसे अवतार अपलोड) से लेकर क्लाउड स्टोरेज वाली जटिल सिस्टम्स (कस्टम स्टोरेज के ज़रिए) के लिए उपयुक्त है।

2. इंस्टॉलेशन

इंस्टॉलेशन npm (Node Package Manager) के ज़रिए किया जाता है। सुनिश्चित करें कि आपके पास Node.js (वर्शन 12 या उससे ऊपर) इंस्टॉल है।

npm install multer

इंस्टॉल करने के बाद, लाइब्रेरी आपके प्रोजेक्ट में इम्पोर्ट करने के लिए उपलब्ध हो जाएगी।

3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

चलिए Express.js पर एक सरल सर्वर बनाते हैं जो फॉर्म के ज़रिए एक फाइल अपलोड स्वीकार करता है और उसे uploads/ फ़ोल्डर में सेव करता है।

चरण 1. प्रोजेक्ट संरचना

mkdir multer-example
cd multer-example
npm init -y
npm install express multer
touch index.html
touch server.js

चरण 2. HTML फॉर्म (index.html)

<!DOCTYPE html>
<html lang="hi">
<head>
    <meta charset="UTF-8">
    <title>फाइल अपलोड करें</title>
</head>
<body>
    <h1>अपनी फाइल अपलोड करें</h1>
    <form action="/upload" method="POST" enctype="multipart/form-data">
        <input type="file" name="myFile" required>
        <button type="submit">भेजें</button>
    </form>
</body>
</html>

चरण 3. सर्वर (server.js)

const express = require('express');
const multer = require('multer');
const path = require('path');

const app = express();
const PORT = 3000;

// Multer सेटअप: फाइलें 'uploads/' फ़ोल्डर में सेव होंगी
const storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, 'uploads/');
    },
    filename: (req, file, cb) => {
        // यूनिक नाम जनरेट करें: वर्तमान तिथि + मूल एक्सटेंशन
        const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
        cb(null, uniqueSuffix + path.extname(file.originalname));
    }
});

const upload = multer({ storage: storage });

// स्टैटिक HTML सर्व करें
app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

// फाइल अपलोड को हैंडल करें
app.post('/upload', upload.single('myFile'), (req, res) => {
    if (!req.file) {
        return res.status(400).send('फाइल अपलोड नहीं हुई।');
    }
    res.send(`फाइल "${req.file.originalname}" सफलतापूर्वक अपलोड हुई। साइज़: ${req.file.size} बाइट्स।`);
});

app.listen(PORT, () => {
    console.log(`सर्वर चालू है                    

अनुशंसाएँ