How to get the Full URL in Express on Node.js
📣 Sponsor
In Express running on Node.js, we have access to the request
object, and also we can send a response back to the user via the response
object. However, we don’t have access to a simple way of getting the full URL from the request
.
Fortunately, it is quite easy to build the full URL from the request
object in Express. Let’s look at how it works.
Getting the full URL of a Request in Express
In express, we can display certain content on certain routes like so:
app.get('/page', (req, res, next) => {
// Show some content to the user
})
Within a route, we can use the req
object to get the full URL. The full URL is composed of a few different pieces:
- the protocol of the current URL
- the host of the URL (i.e. the domain name)
- and the page you are on, i.e.
/page
To combine all of these from our request, we can run the following:
let fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
Note: it is better to use req.get('host')
, since it will include the port. So if you’re running on localhost:3000
, then :3000
will be included. req.hostname
only returns the domain, or localhost
- which may cause issues for you in the future.
Therefore, a full URL can be found for any page our route, using the following code:
app.get('/page', (req, res, next) => {
// Show some content to the user
let fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
})
More Tips and Tricks for Javascript
- How to sort an array by date in Javascript
- Javascript Shallow Copies - what is a Shallow Copy?
- Javascript Comments
- How to check if a user has scrolled to the bottom of a page with vanilla Javascript
- Javascript Errors
- Demystifying how 'this' works in Javascript
- How Promises and Await work in Javascript
- Javascript Arrays - How to Remove Duplicate Elements
- Javascript Operators and Expressions
- How to Create new Elements with Javascript