Чтение QR-кодов с помощью Node.js
Когда мы работаем с 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
Выход:

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