Node.js · Vercel Functions · npm: qrcode
QR Code Generator
Turns any text or URL into a QR code PNG rendered entirely on the server with the qrcode npm package.
The frontend just points an <img> tag at the API — the PNG itself is generated server-side with the qrcode npm package, no canvas or client-side QR library involved.
Live demo
embedconst QRCode = require('qrcode');
module.exports = async (req, res) => {
const text = (req.query.text || 'https://example.com').toString();
const size = Math.min(1024, Math.max(64, parseInt(req.query.size, 10) || 256));
try {
const buffer = await QRCode.toBuffer(text, {
type: 'png',
width: size,
margin: 1,
color: { dark: '#0b0c10', light: '#ffffff' },
});
res.setHeader('Content-Type', 'image/png');
res.setHeader('Cache-Control', 'no-store');
res.status(200).send(buffer);
} catch (err) {
res.status(500).json({ error: 'Failed to generate QR code', detail: String(err) });
}
};
const form = document.getElementById('form');
const textInput = document.getElementById('text');
const img = document.getElementById('qr');
function update() {
const text = textInput.value.trim() || 'https://example.com';
img.src = `/api/qrcode?size=440&text=${encodeURIComponent(text)}`;
}
form.addEventListener('submit', (e) => {
e.preventDefault();
update();
});
update();