📜  在 Node.js 中生成二维码(1)

📅  最后修改于: 2023-12-03 14:51:03.053000             🧑  作者: Mango

在 Node.js 中生成二维码

二维码(QR Code)是一种快速识别矩阵条码的二进制编码方式。在现代社会中广泛使用,例如将网址、联系方式和各种信息存储在其中。

在 Node.js 中生成二维码可以使用现有的库,本文将介绍如何使用 qrcodeqr-image 两个库来生成二维码。

qrcode

qrcode 库是一个轻量级的无依赖库,可以在浏览器和 Node.js 中使用。它提供了生成二维码的方法,支持将输出保存为 PNG、SVG、PDF 等格式。

安装

使用 npm 安装 qrcode

npm install qrcode
生成二维码

使用 qrcode 只需要调用 toDataURL 方法,将二维码转为 Base64 编码格式的字符串。

const qrcode = require('qrcode');

const generateQRCode = async () => {
  try {
    const qrDataUrl = await qrcode.toDataURL('https://www.example.com');
    console.log(qrDataUrl);
  } catch (error) {
    console.error(error);
  }
};

generateQRCode();

这段代码将在控制台输出转换成 Base64 编码的 PNG 图像数据的字符串。你可以将其保存为 PNG 或其他格式的文件。

更多选项

qrcode 还支持其他选项,例如错误纠正级别、版本、大小、边距等。你可以使用如下方法设置:

const qrcode = require('qrcode');

const options = {
  errorCorrectionLevel: 'H',
  version: 10,
  width: 500,
  margin: 4,
};

const generateQRCode = async () => {
  try {
    const qrDataUrl = await qrcode.toDataURL('https://www.example.com', options);
    console.log(qrDataUrl);
  } catch (error) {
    console.error(error);
  }
};

generateQRCode();
qr-image

qr-image 是一个基于 Node.js 的二维码生成库,可以生成 PNG、JPEG 格式的文件。

安装

使用 npm 安装 qr-image

npm install qr-image
生成二维码

使用 qr-image 首先需要创建一个二维码对象,然后将其保存为文件。

const qrImage = require('qr-image');
const fs = require('fs');

const generateQRCode = () => {
  const qrSvg = qrImage.imageSync('https://www.example.com', { type: 'svg' });
  fs.writeFileSync('example_qr.svg', qrSvg, 'utf8');

  const qrPng = qrImage.imageSync('https://www.example.com', { type: 'png' });
  fs.writeFileSync('example_qr.png', qrPng);
};

generateQRCode();

这段代码将生成一个 SVG 格式的文件和一个 PNG 格式的文件。

更多选项

qr-image 还支持其他选项,例如错误纠正级别、版本、大小、边距等。你可以使用如下方法设置:

const qrImage = require('qr-image');
const fs = require('fs');

const options = {
  ec_level: 'H',
  type: 'png',
  size: 10,
  margin: 2,
};

const generateQRCode = () => {
  const qrData = qrImage.imageSync('https://www.example.com', options);
  fs.writeFileSync('example_qr.png', qrData);
};

generateQRCode();
结论

以上就是在 Node.js 中生成二维码的介绍,我们分别介绍了 qrcodeqr-image 两个库。它们都提供了不同的选项,可以根据需要进行调整。总体而言,使用这两个库都是非常简单和轻量级的。