How to pass variables to the Express Middleware
In this tutorial, we are going to learn about how to pass a variable through the middleware function in the express.
Consider, we have a two middlewares in our /users
route like this.
const express = require('express');
const app = express();
app.get('/users', logger1, logger2, (req, res) => { res.send('users page');
})
function logger1(req, res, next) {
console.log('logger 1');
next();
}
function logger2(req, res, next) {
console.log('logger 2');
next();
}
app.listen(4300, () => console.log(`App is running`));
Now, we need to pass some variables from the logger 1
middleware to the logger 2
middleware.
We can do it by using res.locals
object, where variables are valid only for the lifetime of the request.
const express = require('express');
const app = express();
app.get('/users', logger1, logger2, (req, res) => {
res.send('users page');
})
function logger1(req, res, next) {
// passing variables
res.locals.user = "gowtham"; res.locals.id = "3434"; next();
}
function logger2(req, res, next) {
// accessing variables
const user = res.locals.user; const id = res.locals.id; console.log(user, id);
next();
}
app.listen(4300, () => console.log(`App is running`));
Note: you can’t pass variables through the
next()
function because it used to run the next middleware function in the app.