Express.js

What is Express?

Express.js, or simply Express, is a back end web application framework for building RESTful APIs with Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs. It has been called the de facto standard server framework for Node.js

initialisation:

npm init 
Enter fullscreen mode Exit fullscreen mode

installation of express:

npm install express --save 
Enter fullscreen mode Exit fullscreen mode

installation of nodemon

npm i nodemon
Enter fullscreen mode Exit fullscreen mode

nodemon is a tool that helps develop Node.js based applications by automatically restarting the node application when file changes in the directory are detected.

Run express server on: localhost:3000

Image description

send json: localhost:3000/jsonexample

Image description
path is a inbuild module
we can call directories

Image description

params

The req.params property is an object containing properties mapped to the named route “parameters”. For example, if you have the route /student/:id, then the “id” property is available as req.params.id. This object defaults to {}.
http://localhost:3000/api/products/3

Image description

query
The req.query property allows you to access the query parameters from the URL of an incoming HTTP request. Query parameters are key-value pairs included in the URL after the “?” symbol, and they are separated by “&” symbols.
http://localhost:3000/api/v1/query?search=r&limit=2

Image description

Basic crud operation
modules

const express = require('express')
const app = express(); //app.use(express.json());
Enter fullscreen mode Exit fullscreen mode

let books is a arr obj

let books = [ {id:1,title:'Book 1',author: 'author 1'}, {id:2,title:'Book 2',author: 'author 2'},
] 
Enter fullscreen mode Exit fullscreen mode

read

app.get('/', (req, res) => { res.json(books)
}) app.use(express.json()) 
Enter fullscreen mode Exit fullscreen mode

create

app.post('/books', (req, res) => { console.log(req.body) const newBook = req.body; newBook.id = books.length + 1; books.push(newBook); res.status(201).json(newBook) }) 
Enter fullscreen mode Exit fullscreen mode

update/put

app.put('/books/:id',(req, res)=> { const id = parseInt(req.params.id) const updatedBooks = req.body const index = books.findIndex(book => book.id === id); if (index !== -1) { books[index] = { ...books[index], ...updatedBooks } res.json(books[index]) } else { res.status(404).json({error: "book not found"}) } }) 
Enter fullscreen mode Exit fullscreen mode

delete

app.delete('/books/:id', (req, res) => { const id = parseInt(req.params.id); const index = books.findIndex((book) => book.id === id); if (index !== -1) { const deletedBook = books[index]; books.slice(index, 1); res.json(deletedBook); } else { res.status(404).json({ error: "book not found" }); }
}) 
Enter fullscreen mode Exit fullscreen mode

port

app.listen(3000, () => { console.log('server is running on port 3000')
})
Enter fullscreen mode Exit fullscreen mode

but this is not a good way to operate CRUD operations
there is a better way
folder structure

Image description

index.js

const express = require('express')
const app = express();
const bookRoutes=require('./routes/bookRoutes') app.use(express.json());
app.use('/',bookRoutes) app.listen(3000, () => { console.log('server is running on port 3000')
})
Enter fullscreen mode Exit fullscreen mode

bookController.js

let books = [ { id: 1, title: "Book 1", author: "author 1" }, { id: 2, title: "Book 2", author: "author 2" },
]; //read
const getBooks=(req, res) => { res.json(books);
} //create
const createBooks= (req, res) => { console.log(req.body); const newBook = req.body; newBook.id = books.length + 1; books.push(newBook); res.status(201).json(newBook);
} //update /put
const updateBooks= (req, res) => { const id = parseInt(req.params.id); const updatedBooks = req.body; const index = books.findIndex((book) => book.id === id); if (index !== -1) { books[index] = { ...books[index], ...updatedBooks }; res.json(books[index]); } else { res.status(404).json({ error: "book not found" }); }
} //delete
const deleteBooks= (req, res) => { const id = parseInt(req.params.id); const index = books.findIndex((book) => book.id === id); if (index !== -1) { const deletedBook = books[index]; books.slice(index, 1); res.json(deletedBook); } else { res.status(404).json({ error: "book not found" }); }
} module.exports = { getBooks,createBooks,updateBooks,deleteBooks
} 
Enter fullscreen mode Exit fullscreen mode

bookRoutes.js

const express = require('express') const bookController = require('../controllers/bookController') const router = express.Router() router.get('/books',bookController.getBooks)
router.post('/books',bookController.createBooks)
router.put('/books/:id',bookController.updateBooks)
router.delete('/books/:id', bookController.deleteBooks) module.exports = router;
Enter fullscreen mode Exit fullscreen mode

check out in github:


Discover more from Coursity

Subscribe to get the latest posts sent to your email.

Leave a Comment

Your email address will not be published. Required fields are marked *

Discover more from Coursity

Subscribe now to keep reading and get access to the full archive.

Continue reading

Scroll to Top
Additional strategies for integrating active listening into your career growth plan.