
Express JS
Docs : https://expressjs.com/en/guide/routing.html
- Express is a node js web application framework that provides broad features for building web and mobile applications
- It's a layer built on the top of the Node js that helps manage servers and routes.
- Installing express module
╭─ npm install express
added 57 packages, and audited 58 packages in 3s
7 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilitiesCreating a Express Web Server
index.jsfile
const express = require("express");
const PORT = 4000;
const HOST = "localhost";
const app = express();
app.listen(PORT, HOST, () => {
console.log(`Server is working on https://${HOST}:${POST}`);
});- Localhost: 4000

Routing using Express
index.jsfile
const express = require("express");
const PORT = 4000;
const HOST = "localhost";
const app = express();
app.get("/", (request, response) => {
response.send("<h1 style='font-family: Arial'>Home Page</h1>");
});
app.get("/about", (request, response) => {
response.send("<h1 style='font-family: Arial'>About Page</h1>");
});
app.get("*", (request, response) => {
response.send(
"<h1 style='font-family: Arial; color: lightcoral'>404 Page Not Found</h1>"
);
});
app.listen(PORT, HOST, () => {
console.log(`Server is working on https://${HOST}:${PORT}`);
});- LocalHost : 4000

What is CRUD ?
- CRUD application means that an application can perform Create, Read, Update, Delete operation in a database.
- While using Express, we use
get(),post(),put(),delete()
Creating Registration page using Express


<form action="/api/v1/register" method="POST">inindex.html, this specifies on submittion of the form route to "/api/v1/register".app.post("/api/v1/register", () => {})is used to read data from route "/api/v1/register".index.jsfile
const express = require("express");
const path = require("path");
const PORT = 4000;
const HOST = "localhost";
const app = express();
app.get("/", (request, response) => {
response.sendFile(path.join(__dirname + "/index.html"));
});
app.get("/about", (request, response) => {
response.send("<h1 style='font-family: Arial'>About Page</h1>");
});
app.get("*", (request, response) => {
response.send(
"<h1 style='font-family: Arial; color: lightcoral'>404 Page Not Found</h1>"
);
});
app.post("/api/v1/register", (request, response) => {
response.send(
"<h1 style='font-family: Arial'>Thank you for Registering</h1>"
);
console.log("registered");
});
app.listen(PORT, HOST, () => {
console.log(`Server is working on https://${HOST}:${PORT}`);
});console.log(request.body)returnsUNDEFINEDin server terminal.

- to fix this issue, we need to install body-parser
╭─ npm install body-parser
added 2 packages, changed 2 packages, and audited 60 packages in 2s
7 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities- import the body-parser module by
const bodyParser = require("body-parser"); app.use(bodyParser.urlencoded({extended: false}));toindex.js

Creating an API using Express
- REST API is a set of functions that programmer can use to send requests and receive reponses using the HTTP protocol methods such as GET and POST.
- To test API, we are using Postman
api.jsfile
const express = require("express");
const bodyParser = require("body-parser");
const PORT = 4000;
const HOST = "localhost"
const app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.get("/api/v1/userdata", (request, response) => {
response.json({
name: "driptanil",
email: 'driprecovery@gmail.com',
password: "thisisnotmypassword",
})
})
app.get("*", (request, response) => {
response.send("<h1 style='font-family: Arial; color: lightcoral'>404 Page Not Found</h1>")
})
app.listen(PORT, HOST, () => {
console.log(`Server is working on https://${HOST}:${PORT}`);
})
```

- api.js file adding app.post()
app.post("/api/v1/register", (request, response) => { const userName = request.body.name; const userEmail = request.body.email; const userPassword = request.body.password;
response.json({ success: true, name: userName, email: userEmail, password: userPassword, }) })

- Note: only "success" shows up, and it misses "name", "email", "password" from
response.json(). - To fix this issue, add
app.use(express.json())toapi.js,
const express = require("express");
const bodyParser = require("body-parser");
const { response } = require("express");
const PORT = 4000;
const HOST = "localhost";
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.json());
app.get("/api/v1/userdata", (request, response) => {
response.json({
name: "driptanil",
email: "driprecovery@gmail.com",
password: "thisisnotmypassword",
});
});
app.get("*", (request, response) => {
response.send(
"<h1 style='font-family: Arial; color: lightcoral'>404 Page Not Found</h1>"
);
});
app.post("/api/v1/register", (request, response) => {
const userName = request.body.name;
const userEmail = request.body.email;
const userPassword = request.body.password;
response.json({
success: true,
name: userName,
email: userEmail,
password: userPassword,
});
});
app.listen(PORT, HOST, () => {
console.log(`Server is working on https://${HOST}:${PORT}`);
});
Intrgrating API with the Registration Page
- change form action to "/api/v1/register" in
index.htmlby<form action="/api/v1/register" method="POST">

Organizing files
- In
post/userController.js, the post function is defined. - In
routes/userRoutes.js, - the api routes are defined, and the post function
registerUser()is called. - importing
expressbyconst express = require("express") - defining router by calling
express.Router()method - In
index.js, - importing
routefrom./routes/userRoutes.js, byconst router = require("./routes/userRoutes"); - adding
app.use("/", router);
