Generador de códigos QR en JavaScript (Node.js) con qrcode y qr-image

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Generación de códigos QR en Node.js: bibliotecas qrcode y qr-image

\n\n

Los códigos QR se han convertido en una parte esencial de las aplicaciones web modernas: desde enlaces a sitios web y autenticación hasta la transmisión de datos de contacto e información de pago. En el ecosistema de Node.js, existen varias bibliotecas maduras que permiten generar códigos QR sin necesidad de API externas ni editores gráficos pesados. En este artículo, analizaremos en detalle las dos más populares: qrcode y qr-image. Aprenderá cómo instalar cada una, qué formatos de salida admiten y obtendrá ejemplos de código listos para integrar en su proyecto.

\n\n

1. Biblioteca qrcode — generador universal

\n\n

qrcode es una potente biblioteca compatible con JavaScript, TypeScript e incluso navegadores. Permite generar códigos QR en formatos PNG, SVG, canvas e incluso como texto simple. Su principal ventaja es la configuración detallada: puede cambiar colores, nivel de corrección de errores, agregar logotipos y gestionar los márgenes.

\n\n

Instalación

\n
npm install qrcode
\n\n

Ejemplo básico: creación de una imagen PNG

\n
const QRCode = require('qrcode');\n\n// Cadena simple para codificar\nconst data = 'https://pythonlib.ru';\n\nQRCode.toFile('qrcode.png', data, {\n  color: {\n    dark: '#000000',   // color de los módulos (cuadrados)\n    light: '#FFFFFF'   // color de fondo\n  },\n  errorCorrectionLevel: 'H' // corrección de errores máxima\n}, function (err) {\n  if (err) throw err;\n  console.log('Código QR guardado como qrcode.png');\n});
\n\n

Generación SVG (formato vectorial)

\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); // muestra el marcado SVG en la consola\n});
\n\n

Generación en buffer (para enviar por 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 es un objeto Buffer que se puede enviar como respuesta HTTP\n  // res.setHeader('Content-Type', 'image/png');\n  // res.send(buffer);\n});
\n\n

2. Biblioteca qr-image — alternativa ligera

\n\n

qr-image es una biblioteca minimalista sin dependencias innecesarias. Está orientada a la generación rápida de PNG, SVG, EPS e incluso PDF (mediante la instalación de un módulo adicional). Si no necesita configuraciones complejas de color ni logotipos, qr-image será una excelente opción.

\n\n

Instalación

\n
npm install qr-image
\n\n

Ejemplo: creación de una imagen PNG

\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('Código QR guardado como qr-image.png');
\n\n

Generación SVG

\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('Código QR guardado como qr-image.svg');
\n\n

Obtención de una cadena SVG sin guardar en archivo

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

3. Comparación de bibliotecas

\n\n

Recommendations