Home > database >  Axios with Node: Set custom request headers on all routes
Axios with Node: Set custom request headers on all routes

Time:06-01

I have this node API wrapper service, where I need to set REQUEST custom headers on all routes / endpoints at once instead of doing that on each request. I have tried the following in app.js but receive a not function error - req.set is not a function:

    const customHeadersAppLevel = function (req, res, next) {
            req.set('User-Agent', 'zendx/sop API');
            next();
        };
        app.all('*', customHeadersAppLevel);

Is there anyway we can do this on the app level or should I just go ahead with setting custom request headers on individual routes/requests, respectively.

CodePudding user response:

Assuming that app = express() and we are at the top of the server's root file, you could set those headers for all your request like this:

const customHeadersAppLevel = function (req, res, next) {
  req.headers['User-Agent'] = 'zendx/sop API'
  next();
};

app.use(customHeadersAppLevel);

CodePudding user response:

I think there is no set function in Request. Use headers property to set the request header.

 const customHeadersAppLevel = function (req, res, next) {
    req.headers['User-Agent'] = 'zendx/sop API';
    next();
 };
 app.all('*', customHeadersAppLevel);

You can also use Application-level middleware. Something like this,

const express = require('express')
const app = express()

app.use((req, res, next) => {
  req.headers['User-Agent'] = 'zendx/sop API';
  next()
})

// Other Route comes here
  • Related