QR-Code-Generator auf JavaScript (Node.js) mit qrcode und qr-image

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

QR-Code-Generierung auf Node.js: Bibliotheken qrcode und qr-image

\n\n

QR-Codes sind zu einem festen Bestandteil moderner Webanwendungen geworden: von Links zu Websites und Authentifizierung bis hin zur Übertragung von Kontaktdaten und Zahlungsinformationen. Im Node.js-Ökosystem gibt es mehrere ausgereifte Bibliotheken, mit denen Sie QR-Codes ohne externe APIs und schwere Grafikeditoren generieren können. In diesem Artikel betrachten wir die beiden beliebtesten im Detail: qrcode und qr-image. Sie erfahren, wie Sie jede installieren, welche Ausgabeformate sie unterstützen, und erhalten fertige Codebeispiele für die Integration in Ihr Projekt.

\n\n

1. Bibliothek qrcode — universeller Generator

\n\n

qrcode ist eine leistungsstarke Bibliothek mit Unterstützung für JavaScript, TypeScript und sogar Browser. Sie ermöglicht die Generierung von QR-Codes in den Formaten PNG, SVG, canvas und sogar als einfachen Text. Der Hauptvorteil ist die detaillierte Anpassung: Sie können Farben ändern, die Fehlerkorrekturstufe einstellen, Logos hinzufügen und Ränder verwalten.

\n\n

Installation

\n
npm install qrcode
\n\n

Basisbeispiel: Erstellen eines PNG-Bildes

\n
const QRCode = require('qrcode');\n\n// Einfacher zu codierender String\nconst data = 'https://pythonlib.ru';\n\nQRCode.toFile('qrcode.png', data, {\n  color: {\n    dark: '#000000',   // Farbe der Module (Quadrate)\n    light: '#FFFFFF'   // Hintergrundfarbe\n  },\n  errorCorrectionLevel: 'H' // maximale Fehlerkorrektur\n}, function (err) {\n  if (err) throw err;\n  console.log('QR-Code gespeichert als qrcode.png');\n});
\n\n

SVG-Generierung (Vektorformat)

\n
const QRCode = require('qrcode');\n\nQRCode.toString('https://pythonlib.ru', {\n  type: 'svg',\n  color: {\n    dark: '#2c3e50',\n    light: '#ecf0f1'\n  }\n}, function (err, svgString) {\n  if (err) throw err;\n  console.log(svgString); // SVG-Markup in der Konsole ausgeben\n});
\n\n

Generierung in einen Buffer (zum Senden über HTTP)

\n
const QRCode = require('qrcode');\n\nQRCode.toBuffer('https://pythonlib.ru', {\n  type: 'png',\n  width: 400,\n  margin: 2\n}, function (err, buffer) {\n  if (err) throw err;\n  // buffer ist ein Buffer-Objekt, das als HTTP-Antwort gesendet werden kann\n  // res.setHeader('Content-Type', 'image/png');\n  // res.send(buffer);\n});
\n\n

2. Bibliothek qr-image — leichte Alternative

\n\n

qr-image ist eine minimalistische Bibliothek ohne überflüssige Abhängigkeiten. Sie ist auf die schnelle Generierung von PNG, SVG, EPS und sogar PDF (durch Installation eines zusätzlichen Moduls) ausgerichtet. Wenn Sie keine komplexen Farbeinstellungen und Logos benötigen, ist qr-image eine ausgezeichnete Wahl.

\n\n

Installation

\n
npm install qr-image
\n\n

Beispiel: Erstellen eines PNG-Bildes

\n
const qr = require('qr-image');\nconst fs = require('fs');\n\nconst data = 'https://pythonlib.ru';\nconst qr_png = qr.image(data, { type: 'png', size: 10 });\nqr_png.pipe(fs.createWriteStream('qr-image.png'));\n\nconsole.log('QR-Code gespeichert als qr-image.png');
\n\n

SVG-Generierung

\n
const qr = require('qr-image');\nconst fs = require('fs');\n\nconst data = 'https://pythonlib.ru';\nconst qr_svg = qr.image(data, { type: 'svg', size: 10 });\nqr_svg.pipe(fs.createWriteStream('qr-image.svg'));\n\nconsole.log('QR-Code gespeichert als qr-image.svg');
\n\n

SVG-String ohne Dateispeicherung abrufen

\n
const qr = require('qr-image');\n\nconst data = 'https://pythonlib.ru';\nconst svgString = qr.imageSync(data, { type: 'svg' });\nconsole.log(svgString); // fertiges SVG-Markup
\n\n

3. Vergleich der Bibliotheken

\n\n
    \n
  • qrcode — mehr Einstellungen (Farbe, Ränder, Fehlerkorrektur, Logo), Unterstützung für TypeScript, Promises und async/await. Besser geeignet für Produktionsprojekte, bei denen benutzerdefinierte Farben und hohe Zuverlässigkeit erforderlich sind.

Empfehlungen