📜  使用 Node.js 读取二维码

📅  最后修改于: 2022-05-13 01:56:42.984000             🧑  作者: Mango

使用 Node.js 读取二维码

当我们使用 Node.js 构建任何应用程序时,我们可能希望我们的应用程序与外部应用程序或支付网关进行交互,这些应用程序或支付网关提供 QR 码来传递信息。在本文中,我们将了解如何在我们的 node.js 应用程序中解码二维码。

让我们通过执行这些命令来设置我们的工作区:

创建目录:

npm init -y
mkdir src
cd src
nano app.js

安装包:

我们需要安装一个 npm 包才能继续工作。

要使用 qrcode-reader,我们还需要一个图像解析器。 Jimp 模块用于图像解析。

npm install qrcode-reader jimp

假设我们在与源代码相同的目录中有一个 QR 码的图像。我们需要嵌入图像中的数据。

  • 首先导入app.js中的所有包
var Jimp = require("jimp");
var fs = require('fs')
var QrCode = require('qrcode-reader');
  • 现在我们需要加载我们的二维码:
// Read the image and create a buffer  
// (Here image.png is our QR code)
var buffer = fs.readFileSync(__dirname + '/image.png');
  • 使用 Jimp 模块解析图像并使用 qrcode-reader 包的 decode() 方法:
// Parse the image  
Jimp.read(buffer, function(err, image) {
   if (err) {
       console.error(err);
   }
   let qrcode = new qrCode();
   qrcode.callback = function(err, value) {
       if (err) {
           console.error(err);
       }
       console.log(value.result);
   };
   qrcode.decode(image.bitmap);
});

在这里我们可以读取字符串格式的数据。

索引.js

Javascript
//Importing jimp module
var Jimp = require("jimp");
// Importing filesystem module
var fs = require('fs')
// Importing qrcode-reader module
var qrCode = require('qrcode-reader');
 
// Read the image and create a buffer
// (Here image.png is our QR code)
var buffer = fs.readFileSync(__dirname + '/image.png');
 
// Parse the image using Jimp.read() method
Jimp.read(buffer, function(err, image) {
    if (err) {
        console.error(err);
    }
    // Creating an instance of qrcode-reader module
    let qrcode = new qrCode();
    qrcode.callback = function(err, value) {
        if (err) {
            console.error(err);
        }
        // Printing the decrypted value
        console.log(value.result);
    };
    // Decoding the QR code
    qrcode.decode(image.bitmap);
});


使用以下命令运行index.js文件:

node index.js

输出:

输出数据