Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
October 30, 2021 11:34 am GMT

NodeJS Express part 4: CRUD API

Here is a series of articles that will allow you to create backend applications with NodeJS + Express.

This series is the continuation of my series on the basics of NodeJS. If you don't have basic knowledge of NodeJS read this series first: Introduction to NodeJS

Node.js is today a must, so it is essential for a developer to master it.

So I will publish a new article about every two days and little by little you will learn everything there is to know about Node.js + Espress

To not miss anything follow me on twitter: https://twitter.com/EricTheCoder_

CRUD API

Now that we know the basics concept, it's time to build real CRUD API (create, read, update, delete)

We will build all those CRUD routes:

Create: POST/api/products

Read all: GET /api/products

Read: GET/api/product/1

Update: PUT /api/products/1

Delete: DELETE/api/products/1

Return status

With a CRUD API you can return data but also status code.

Here is a list of some status code and there meaning

res.status(200) // Okres.status(201) // Createdres.status(204) // No contentres.status(400) // Bad requestres.status(401) // Unauthorizedres.status(403) // Forbiddenres.status(404) // Not foundres.status(500) // Server error

Create a file name data.js and copy/paste this code

const products = [    { id: 1, name: 'iPhone', price: 800 },    { id: 2, name: 'iPad', price: 650 },    { id: 3, name: 'iWatch', price: 750 }]module.exports = products

Load data and start the server

const express = require('express')const app = express()const products = require('./data.js')app.listen(5000, () => {    console.log('server is listening on port 5000')})

Create: POST/api/products

app.use(express.json()) // parse json body contentapp.post('/api/products', (req, res) => {    const newProduct = {        id: products.length + 1,        name: req.body.name,        price: req.body.price    }    products.push(newProduct)    res.status(201).json(newProduct)})

The app.use(express.json) is a middleware that take JSON content and create related req.body properties. (ex. req.body.name and req.body.price)

The res.status(201).json(newProduct) set the return response status to 201 (created) and also return the newProduct data in JSON format.

Read all: GET /api/products

app.get('/api/products', (req, res) => {    res.json(products)})

Read: GET/api/product/1

app.get('/api/products/:productID', (req, res) => {    const id = Number(req.params.productID)    const product = products.find(product => product.id === id)    if (!product) {        return res.status(404).send('Product not found')    }    res.json(product)})

As seen in part 2, first we retrieved the productID from the route parameter.

Then we check if this product exist and send a response accordingly.

res.json(product) send the product in JSON format with a 200 ok status code.

Update: PUT /api/products/1

app.use(express.json()) // parse json body contentapp.put('/api/products/:productID', (req, res) => {    const id = Number(req.params.productID)    const index = products.findIndex(product => product.id === id)    if (index === -1) {        return res.status(404).send('Product not found')    }    const updatedProduct = {        id: products[index].id,        name: req.body.name,        price: req.body.price    }    products[index] = updatedProduct    res.status(200).json('Product updated')})

Delete: DELETE/api/products/1

app.use(express.json()) // parse json body contentapp.delete('/api/products/:productID', (req, res) => {    const id = Number(req.params.productID)    const index = products.findIndex(product => product.id === id)        if (index === -1) {        return res.status(404).send('Product not found')    }    products.splice(index,1)    res.status(200).json('Product deleted')})

Conclusion

That's all for today, follow me on twitter: https://twitter.com/EricTheCoder_ to be notified of the publication of the next article (within two days).


Original Link: https://dev.to/ericchapman/nodejs-express-part-4-crud-api-37ef

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To