The following approach covers how to send different HTML files based on the query parameters in Node.js
Approach: The task can be easily fulfilled by receiving the query parameters and map different HTML files with the respective parameters.
Step 1: Create your project folder and install the express module using the following command:
npm install express
Step 2: Create a main.js file in the root directory of your project and write down the following code in it.
var express = require('express');
var app = express();
const fs = require("fs");
// Helper function to read and serve html files
// according to the requested paths
function readAndServe(path, res) {
fs.readFile(path, function (err, data) {
res.end(data);
})
}
// Setting get request path to receive id as query parameter
app.get('/:id', function (req, res) {
console.log(req.params);
// Mapping different id's with respective html files
if (req.params.id == "id1")
readAndServe("./id1.html", res);
else if (req.params.id == "id2")
readAndServe("./id2.html", res);
else {
res.end("Invalid request");
}
});
app.listen(8080, () => { console.log("Server Listening on Port 8080") });
Step 3: Create id1.html and id2.html files in the root directory of your project as shown below.
<!DOCTYPE HTML>
<html>
<head>
<title>Id 1</title>
</head>
<body>
<h1>Requested Id = 1</h1>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<title>Id 2</title>
</head>
<body>
<h1>Requested Id = 2</h1>
</body>
</html>
Step 4: Run the server using the following command from the root directory of the project:
node main.js
Output:
- Now open your browser and go to http://localhost:8080/id1, you will see the following output when id1 is passed as a query parameter.
Now go to http://localhost:8080/id2, you will see the following output when id2 is passed as a query parameter.