Open In App

Reading QR codes using Node.js

Improve
Improve
Like Article
Like
Save
Share
Report

When we are working with Node.js to build any application, we might want our apps to interact with external apps or payment gateways that provide QR codes to communicate the information. In this article, we will see how we can decode a QR code in our node.js applications. 

Let’s set up our workspace by executing these commands:

Creating directory:

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

Installing packages:

We need to install an npm package in order to work ahead.

To work with the qrcode-reader, we also need an image parser. Jimp Module is used for image parsing.

npm install qrcode-reader jimp

Suppose we have an image of a QR code in the same directory as our source code. We need the data embedded in the image.

  • First import all the packages in app.js
const Jimp = require("jimp");
const fs = require('fs')
const QrCode = require('qrcode-reader');
  • Now we need to load our QR code:
// Read the image and create a buffer  
// (Here image.png is our QR code)
const buffer = fs.readFileSync(__dirname + '/image.png');
  • Parse the image using the Jimp module and use the decode() method of the qrcode-reader package:
// 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);
});

Here we can read the data that is in string format.

Index.js

Javascript




//Importing jimp module
const Jimp = require("jimp");
// Importing filesystem module
const fs = require('fs')
// Importing qrcode-reader module
const qrCode = require('qrcode-reader');
 
// Read the image and create a buffer
// (Here image.png is our QR code)
const 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);
});


Run the index.js file using the following command:

node index.js

Output:

Output data 


Last Updated : 05 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads