Node.js में QR कोड जनरेशन: qrcode लाइब्रेरी और उदाहरण

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

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

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

qrcode लाइब्रेरी का उपयोग करके Node.js पर QR कोड जनरेशन



QR कोड आधुनिक वेब का एक अभिन्न अंग बन गए हैं: वाई-फाई लिंक से लेकर भुगतान पुष्टिकरण तक। यदि आप Node.js पर बैकएंड विकसित कर रहे हैं और प्रोग्रामेटिक रूप से QR कोड बनाना चाहते हैं, तो qrcode लाइब्रेरी सबसे लोकप्रिय और सरल उपकरण है। इसे अतिरिक्त ग्राफिकल पैकेज स्थापित करने की आवश्यकता नहीं है और यह विभिन्न प्रारूपों में आउटपुट दे सकती है: PNG, SVG, HTML कैनवास और यहां तक कि टर्मिनल के लिए टेक्स्ट रूप में भी।



इंस्टॉलेशन

npm के माध्यम से पैकेज इंस्टॉल करें:

npm install qrcode


इंस्टॉलेशन के बाद, मॉड्यूल को अपने प्रोजेक्ट में शामिल करें:

const QRCode = require('qrcode');


मुख्य विधियाँ

लाइब्रेरी जनरेशन के लिए तीन मुख्य विधियाँ प्रदान करती है:

  • QRCode.toDataURL(text, options) — Data URL (PNG इमेज के साथ base64 स्ट्रिंग) लौटाती है।
  • QRCode.toBuffer(text, options) — PNG-इमेज के साथ Buffer लौटाती है (फ़ाइल में सेव करने या HTTP के माध्यम से भेजने के लिए सुविधाजनक)।
  • QRCode.toString(text, options) — SVG या टर्मिनल कैरेक्टर के रूप में स्ट्रिंग लौटाती है (आउटपुट प्रकार options.type में सेट किया जाता है)।
  • QRCode.toCanvas(canvasElement, text, options) — ब्राउज़र वातावरण (canvas) के लिए।


सरल उदाहरण: PNG (बफर) में QR कोड बनाना

सबसे सामान्य परिदृश्य एक इमेज जनरेट करना और उसे फ़ाइल में सेव करना या उपयोगकर्ता को देना है। इसे करने का तरीका यहाँ दिया गया है:

const QRCode = require('qrcode');const fs = require('fs');

QRCode.toBuffer('https://pythonlib.ru', { width: 400, margin: 2, color: { dark: '#000000', light: '#ffffff' }}).then(buffer => { fs.writeFileSync('qrcode.png', buffer); console.log('QR-код сохранён в qrcode.png');}).catch(err => console.error(err));


इस उदाहरण में, हम 400 पिक्सेल का आकार, 2 मॉड्यूल का मार्जिन और काला-सफेद रंग योजना सेट करते हैं। toBuffer विधि एक Promise लौटाती है, इसलिए हम .then() या async/await का उपयोग करते हैं।



SVG में QR कोड जनरेशन

वेब एप्लिकेशन के लिए अक्सर वेक्टर फॉर्मेट SVG का उपयोग करना अधिक सुविधाजनक होता है - यह गुणवत्ता खोए बिना स्केल होता है और कम जगह लेता है। विकल्पों में type: 'svg' निर्दिष्ट करें:

const QRCode = require('qrcode');

QRCode.toString('https://pythonlib.ru', { type: 'svg', width: 300, color: { dark: '#1a73e8', light: '#ffffff' }}).then(svgString => { console.log(svgString); // अब आप svgString को फ़ाइल में सेव कर सकते हैं या HTML में डाल सकते हैं}).catch(err => console.error(err));


सीधे टर्मिनल में QR कोड आउटपुट

कभी-कभी ब्राउज़र खोले बिना किसी लिंक को जल्दी से जांचना आवश्यक होता है। लाइब्रेरी कंसोल में यूनिकोड कैरेक्टर के साथ QR कोड बना सकती है:

const QRCode = require('qrcode');

QRCode.toString('Hello, PythonLib!', { type: 'terminal', small: true}).then(qr => { console.log(qr);}).catch(err => console.error(err));


पैरामीटर small: true QR कोड को अधिक कॉम्पैक्ट बनाता है (आधे ब्लॉक का उपयोग करता है)। यदि इसे हटा दिया जाए, तो इमेज बड़ी होगी, लेकिन अधिक विस्तृत होगी।



सेटिंग्स और पैरामीटर

options ऑब्जेक्ट जनरेशन को लचीले ढंग से नियंत्रित करने की अनुमति देता है। मुख्य फ़ील्ड:

  • width — पिक्सेल में इमेज की चौड़ाई (डिफ़ॉल्ट 256)।
  • margin — किनारे से मार्जिन (QR कोड मॉड्यूल में, डिफ़ॉल्ट 4)।
  • color.dark — गहरे मॉड्यूल का रंग (hex, rgb या रंग का नाम)।
  • color.light — पृष्ठभूमि का रंग (डिफ़ॉल्ट सफेद)।
  • errorCorrectionLevel — त्रुटि सुधार स्तर: 'L' (7%), 'M' (15%), 'Q' (25%), 'H' (30%)। स्तर जितना अधिक होगा, उतना अधिक डेटा पुनर्प्राप्त किया जा सकता है, लेकिन QR कोड स्वयं अधिक घना हो जाता है।

अनुशंसाएँ