QR-Code-Generierung in Node.js: Die Bibliothek qrcode und Beispiele

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 mit der Bibliothek qrcode



QR-Codes sind zu einem unverzichtbaren Bestandteil des modernen Webs geworden: von Links zu WLAN bis hin zur Zahlungsbestätigung. Wenn Sie ein Backend auf Node.js entwickeln und programmatisch QR-Codes erstellen möchten, ist die Bibliothek qrcode das beliebteste und einfachste Werkzeug. Sie erfordert keine Installation zusätzlicher Grafikpakete und kann die Ausgabe in verschiedenen Formaten liefern: PNG, SVG, HTML-Canvas und sogar als Textansicht für das Terminal.



Installation

Installieren Sie das Paket über npm:

npm install qrcode


Nach der Installation binden Sie das Modul in Ihr Projekt ein:

const QRCode = require('qrcode');


Grundlegende Methoden

Die Bibliothek bietet drei Hauptmethoden zur Generierung:

  • QRCode.toDataURL(text, options) — gibt eine Data-URL zurück (base64-String mit einem PNG-Bild).
  • QRCode.toBuffer(text, options) — gibt einen Buffer mit einem PNG-Bild zurück (praktisch zum Speichern in einer Datei oder zum Senden über HTTP).
  • QRCode.toString(text, options) — gibt einen String im SVG-Format oder als Terminalzeichen zurück (der Ausgabetyp wird in options.type festgelegt).
  • QRCode.toCanvas(canvasElement, text, options) — für die Browser-Umgebung (Canvas).


Einfaches Beispiel: Erstellen eines QR-Codes in PNG (Buffer)

Das häufigste Szenario ist das Generieren eines Bildes und das Speichern in einer Datei oder die Ausgabe an den Benutzer. So geht's:

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-Code gespeichert in qrcode.png');}).catch(err => console.error(err));


In diesem Beispiel legen wir eine Größe von 400 Pixeln, einen Rand von 2 Modulen und ein schwarz-weißes Farbschema fest. Die Methode toBuffer gibt ein Promise zurück, daher verwenden wir .then() oder async/await.



Generierung eines QR-Codes in SVG

Für Webanwendungen ist das Vektorformat SVG oft praktischer – es skaliert ohne Qualitätsverlust und benötigt weniger Platz. Geben Sie type: 'svg' in den Optionen an:

const QRCode = require('qrcode');

QRCode.toString('https://pythonlib.ru', { type: 'svg', width: 300, color: { dark: '#1a73e8', light: '#ffffff' }}).then(svgString => { console.log(svgString); // Jetzt können Sie svgString in einer Datei speichern oder in HTML einfügen}).catch(err => console.error(err));


Ausgabe des QR-Codes direkt im Terminal

Manchmal muss man schnell einen Link überprüfen, ohne den Browser zu öffnen. Die Bibliothek kann QR-Codes mit Unicode-Zeichen in der Konsole zeichnen:

const QRCode = require('qrcode');

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


Der Parameter small: true macht den QR-Code kompakter (verwendet halbe Blöcke). Wenn man ihn weglässt, wird das Bild größer, aber detaillierter.



Einstellungen und Parameter

Das Objekt options ermöglicht eine flexible Steuerung der Generierung. Die wichtigsten Felder:

  • width — Breite des Bildes in Pixeln (Standard: 256).
  • margin — Randabstand (in QR-Code-Modulen, Standard: 4).
  • color.dark — Farbe der dunklen Module (hex, rgb oder Farbname).
  • color.light — Hintergrundfarbe (Standard: weiß).
  • errorCorrectionLevel — Fehlerkorrekturstufe: 'L' (7%), 'M' (15%), 'Q' (25%), 'H' (30%). Je höher die Stufe, desto mehr Daten können wiederhergestellt werden, aber der QR-Code wird auch dichter.

Empfehlungen