Чтение QR-кодов с помощью Node.js

Опубликовано: 6 Декабря, 2021

Когда мы работаем с Node.js над созданием любого приложения, мы можем захотеть, чтобы наши приложения взаимодействовали с внешними приложениями или платежными шлюзами, которые предоставляют QR-коды для передачи информации. В этой статье мы увидим, как мы можем декодировать QR-код в наших приложениях node.js.

Давайте настроим нашу рабочую область, выполнив следующие команды:

Создание каталога:

 npm init -y
mkdir src
cd src
нано app.js

Установка пакетов:

Нам нужно установить пакет npm, чтобы работать дальше.

Для работы с qrcode-reader нам также понадобится парсер изображений. JimpModule используется для разбора изображений.

 npm установить qrcode-reader jimp

Предположим, у нас есть изображение QR-кода в том же каталоге, что и наш исходный код. Нам нужны данные, встроенные в изображение.

  • Сначала импортируйте все пакеты в app.js
 var Jimp = require ("jimp");
var fs = require ('fs')
var QrCode = require ('qrcode-reader');
  • Теперь нам нужно загрузить наш QR-код:
 // Считываем изображение и создаем буфер  
// (Здесь image.png - наш QR-код)
var buffer = fs.readFileSync (__ dirname + '/image.png');
  • Разберите изображение с помощью модуля Jimp и используйте метод decode () пакета qrcode-reader:
 // Разбираем изображение  
Jimp.read (буфер, функция (ошибка, изображение) {
   if (err) {
       console.error (ошибка);
   }
   пусть qrcode = new qrCode ();
   qrcode.callback = function (err, value) {
       if (err) {
           console.error (ошибка);
       }
       console.log (значение.result);
   };
   qrcode.decode (изображение.bitmap);
});

Здесь мы можем прочитать данные в строковом формате.

Index.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, используя следующую команду:

 узел index.js

Выход:

Выходные данные