Reputation: 1783
Here is actual code that works well but i would like to check if my headers are well transmitted to my api:
var request = require('request');
var express = require('express');
var router = express.Router();
/* GET data by sportId */
router.get('/:locale/:sportId/:federationId/:date', function(req, res) {
var date = req.params.date;
var locale = req.params.locale;
var sportId = req.params.sportId;
var federationId = req.params.federationId;
request(getEventsOptions(sportId, federationId, date, locale), function(error, response, body) {
res.send(body);
});
});
// get options for request
function getEventsOptions(sportId, federationId, date, locale)
{
return {
url: `http://myapi.com/event/sport/${sportId}/date-from/${date}`,
headers: {
'accept': 'application/json',
'dateTo': date,
'federationIds': federationId,
'X-Application-ID': 'sporter',
'Accept-Language': locale,
}
};
}
So my question is quite general, how can i check headers of my call in a node js app ?
Upvotes: 10
Views: 30588
Reputation: 51
If you want to check the headers for all incoming api-calls you could also use express middleware.
This example checks an auth-token on all api calls
const router = express.Router();
router.use((req, res, next) => {
const headers = req.headers
const clientToken = headers["authorization"] || headers["x-access-token"];
const serverToken = process.env.TOKEN;
const verified = clientToken === serverToken;
if (!verified) {
return res.status(400).send("Invalid token.");
}
next();
});
// followed by your api routes
// router.get("/api/", ...)
Upvotes: 1
Reputation: 744
There are three ways to do this:
First, using req.get function:
req.get('headerName');
Second, using req.header function:
req.header('headerName');
Third, using req.headers actual object:
req.headers['headerName'];
I hope it helps you.
Upvotes: 17
Reputation: 5519
According documentation you need req.get function. Also you can use req.headers object with all sended headers.
Code example:
const request = require('request');
const express = require('express');
const router = express.Router();
router.get('/:locale/:sportId/:federationId/:date', (req, res) => {
// destructuring assignment for better readability
const { date, locale, sportId, federationId } = req.params;
// header example with get
const authHeader = req.get('Authorization');
console.log(authHeader);
// example with headers object
console.log(req.headers);
request(getEventsOptions(sportId, federationId, date, locale), (error, response, body) => {
res.send(body);
});
});
function getEventsOptions(sportId, federationId, date, locale) {
return {
url: `http://myapi.com/event/sport/${sportId}/date-from/${date}`,
headers: {
'accept': 'application/json',
'dateTo': date,
'federationIds': federationId,
'X-Application-ID': 'sporter',
'Accept-Language': locale,
}
};
}
Upvotes: 4