With NPM request module it is quite easy to observe and trace all the intermediate urls before the final url is reached. We can do that using followRedirect
option, which takes either true
or false
, or a function that should return a boolean value. The function takes a single argument response
, that we can use to log the url the request is currently visiting.
For example, let’s try https://google.com
const request = require("request");
request({
url: "https://google.com",
method: "GET",
followRedirect: function(response){
console.log("REDIRECTED FROM: ", response.request.href)
return true
}
}, function(error, response, body){
console.log("ENDED AT: ", response.request.href);
})
The result will show the intermediate url it went through before reaching the correct https://www.google.com
REDIRECTED FROM: https://google.com/
ENDED AT: https://www.google.com/
Similarly, it also works for multiple redirects. Here’s an example of redirecting localhost links till /a4 link is arrived at.
const request = require("request");
request({
url: "http://localhost:8080/a1",
method: "GET",
followRedirect: function(response){
console.log("REDIRECTED FROM: ", response.request.href)
return true
}
}, function(error, response, body){
console.log("ENDED AT: ", response.request.href);
})
REDIRECTED FROM: http://localhost:8080/a1
REDIRECTED FROM: http://localhost:8080/a2
REDIRECTED FROM: http://localhost:8080/a3
ENDED AT: http://localhost:8080/a4
The above redirecting links/apis can easily be generated for testing in node express router as below.
router.get("/a1", (req, res, next) => {
return res.redirect("/a2");
});
router.get("/a2", (req, res, next) => {
return res.redirect("/a3");
});
router.get("/a3", (req, res, next) => {
return res.redirect("/a4");
});
router.get("/a4", (req, res, next) => {
return res.json({success: true});
});
See also
- JavaScript Rollbar: Unknown Unhandled Rejection Error Getting Reason From Event
- Remove Eslint Warnings For Dynamic Imports
- Nodejs Script to Add Rows in CSV File Through Terminal
- How to Run Nightmare JS On Remote Linux Server
- How to Deal With Nightmare JS Zombie Electron Processes
- Restart Pm2 Process Every Day Using A Node Script
- Clean Up MongoDB Of Old Inactive Users And Their Data With Node Js Script