使用 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
输出: