constexpress=require('express')constapp=express()// Setup static and middlewareapp.use(express.static('./public'))app.get('/', (req, res) => {res.send('Home Page')})app.all('*', (req, res) => {res.status(404).send('<h1>Page not found</h1>')})app.listen(5000, () => {console.log('Server is listening on port 5000...')})
API vs SSR
API
SSR
JSON
Template
Send Data
Send Template
Res.JSON()
Res.Render()
JSON APIs
constexpress=require('express')constapp=express()app.get('/', (req, res) => {res.json([ { name:"john" }, { name:"joe" } ])})app.listen(5000, () => {console.log("Server is listening on port 5000...")})
Middlewares
These are functions that gets executed during the request to the server
Has access to request and response object
We must pass on the request to next middleware
Method 1
constexpress=require('express')constapp=express()constlogger= (req, res, next) => {constmethod=req.methodconsturl=req.urlconsttime=newDate().getFullYear()console.log(method, url, time)next() // Sending back to Home Page}app.get('/', logger, (req, res) => {res.send("Home")})app.listen(5000, () => {console.log("Server is listening on port 5000...")})
Method 2
middleware.js
constlogger= (req, res, next) => {constmethod=req.methodconsturl=req.urlconsttime=newDate().getFullYear()console.log(method, url, time)next() // Sending back to Home Page}module.exports= logger
app.js
constexpress=require('express')constapp=express()constlogger=require('./middleware')app.use(logger)app.get('/', (req, res) => {res.send("Home")})app.get('/about', (req, res) => {res.send("About")})app.listen(5000, () => {console.log("Server is listening on port 5000...")})
Types
Own
Express
Third Party
Morgan (Logger)
POST Method
// parse form dataapp.use(express.urlencoded({ extended:false }))// parse json data// app.use(express.json())app.post('/login', (req, res) => {const { name } =req.bodyif(name) {returnres.status(200).send(`Welcome ${name}`) }res.status(401).send('Please provide credentials!')})