NodeJS + Express 第 4 部分:CRUD API
这里有一系列文章可以帮助您使用 NodeJS + Express 创建后端应用程序。
本系列是我 NodeJS 基础系列的延续。如果你对 NodeJS 还不了解,可以先阅读以下系列:NodeJS 入门
Node.js 如今已成为必需品,因此开发人员必须掌握它。
因此,我将每两天发布一篇新文章,逐渐地您将了解有关 Node.js + Espress 的所有知识
为了不错过任何内容,请在 Twitter 上关注我:https://twitter.com/EricTheCoder_
CRUD API
现在我们已经了解了基本概念,是时候构建真正的 CRUD API(创建、读取、更新、删除)了
我们将构建所有这些 CRUD 路线:
创建:POST /api/products
读取全部:GET /api/products
读取:GET /api/product/1
更新:PUT /api/products/1
删除:DELETE /api/products/1
退货状态
使用 CRUD API,您可以返回数据,也可以返回状态代码。
以下是一些状态代码及其含义的列表
res.status(200) // Ok
res.status(201) // Created
res.status(204) // No content
res.status(400) // Bad request
res.status(401) // Unauthorized
res.status(403) // Forbidden
res.status(404) // Not found
res.status(500) // Server error
创建文件名 data.js 并复制/粘贴此代码
const products = [
{ id: 1, name: 'iPhone', price: 800 },
{ id: 2, name: 'iPad', price: 650 },
{ id: 3, name: 'iWatch', price: 750 }
]
module.exports = products
加载数据并启动服务器
const express = require('express')
const app = express()
const products = require('./data.js')
app.listen(5000, () => {
console.log('server is listening on port 5000')
})
创建:POST /api/products
app.use(express.json()) // parse json body content
app.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)
})
app.use(express.json) 是一个中间件,它接受 JSON 内容并创建相关的 req.body 属性。(例如 req.body.name 和 req.body.price)
res.status(201).json(newProduct) 将返回响应状态设置为 201(已创建),并以 JSON 格式返回 newProduct 数据。
读取全部:GET /api/products
app.get('/api/products', (req, res) => {
res.json(products)
})
读取: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)
})
如第 2 部分所示,首先我们从路由参数中检索 productID。
然后我们检查该产品是否存在并相应地发送响应。
res.json(product) 以 JSON 格式发送产品,并附带 200 ok 状态代码。
更新:PUT /api/products/1
app.use(express.json()) // parse json body content
app.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 /api/products/1
app.use(express.json()) // parse json body content
app.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')
})
结论
今天就到这里,请在推特上关注我:https://twitter.com/EricTheCoder_以便收到下一篇文章发布的通知(两天内)。
文章来源:https://dev.to/ericchapman/nodejs-express-part-4-crud-api-37ef