29 Node.js CRUD 操作基础教程

29 Node.js CRUD 操作基础教程

在本教程中,我们将学习如何使用 Node.js 实现基本的 CRUD(创建、读取、更新、删除)操作。我们将搭建一个简单的服务器并使用 Express 框架来处理 HTTP 请求。

环境准备

首先,确保你已经安装了 Node.js 和 npm。如果还未安装,可以在 Node.js 官网 下载并安装。

接下来,创建一个新的项目目录并初始化 npm:

1
2
3
mkdir node-crud-example
cd node-crud-example
npm init -y

然后安装 Express 框架:

1
npm install express

创建基本服务器

在项目根目录中创建一个 index.js 文件:

1
2
3
4
5
6
7
8
9
10
11
const express = require('express');
const app = express();
const PORT = 3000;

// 中间件
app.use(express.json());

// 启动服务器
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});

运行服务器:

1
node index.js

你应该在终端看到 Server is running on http://localhost:3000 的提示。

数据结构

为了演示 CRUD 操作,我们将使用一个简单的内存数据结构 items,它是一个数组,用于存储产品信息。每个产品将包含 idnameprice

1
let items = [];

创建(Create)

接下来,我们实现创建产品的功能。添加以下代码到 index.js 中:

1
2
3
4
5
6
7
// 创建产品
app.post('/items', (req, res) => {
const { name, price } = req.body;
const newItem = { id: items.length + 1, name, price };
items.push(newItem);
res.status(201).json(newItem);
});

测试创建

使用 Postman 或 cURL 来测试创建功能。

使用 cURL 示例:

1
curl -X POST http://localhost:3000/items -H "Content-Type: application/json" -d '{"name": "Apple", "price": 1.5}'

返回的响应应该类似于:

1
2
3
4
5
{
"id": 1,
"name": "Apple",
"price": 1.5
}

读取(Read)

我们将实现两个读取功能:获取所有产品和根据 ID 获取单个产品。

1
2
3
4
5
6
7
8
9
10
11
// 获取所有产品
app.get('/items', (req, res) => {
res.json(items);
});

// 根据 ID 获取产品
app.get('/items/:id', (req, res) => {
const item = items.find(i => i.id === parseInt(req.params.id));
if (!item) return res.status(404).send('Item not found');
res.json(item);
});

测试读取

获取所有产品:

1
curl http://localhost:3000/items

获取单个产品:

1
curl http://localhost:3000/items/1

返回的响应将是你请求的产品信息。

更新(Update)

现在我们来实现更新产品的信息。以下代码允许通过 ID 更新产品的 nameprice

1
2
3
4
5
6
7
8
9
10
11
// 更新产品
app.put('/items/:id', (req, res) => {
const item = items.find(i => i.id === parseInt(req.params.id));
if (!item) return res.status(404).send('Item not found');

const { name, price } = req.body;
item.name = name !== undefined ? name : item.name;
item.price = price !== undefined ? price : item.price;

res.json(item);
});

测试更新

使用 cURL 示例:

1
curl -X PUT http://localhost:3000/items/1 -H "Content-Type: application/json" -d '{"price": 2.0}'

返回的更新后的产品信息应如下所示:

1
2
3
4
5
{
"id": 1,
"name": "Apple",
"price": 2.0
}

删除(Delete)

最后,实现删除产品的功能:

1
2
3
4
5
6
7
8
// 删除产品
app.delete('/items/:id', (req, res) => {
const itemIndex = items.findIndex(i => i.id === parseInt(req.params.id));
if (itemIndex === -1) return res.status(404).send('Item not found');

const deletedItem = items.splice(itemIndex, 1);
res.json(deletedItem);
});

测试删除

使用 cURL 示例:

1
curl -X DELETE http://localhost:3000/items/1

返回的响应将是删除的产品信息。

总结

通过本文,我们实现了一个简单的 Node.js 服务器,这个服务器支持基本的 CRUD 操作。你可以使用 Postman 或 cURL 来测试每个操作。这个示例为你理解 Node.js 和 RESTful API 提供了一个良好的基础。

29 Node.js CRUD 操作基础教程

https://zglg.work/node-js-you-need/29/

作者

AI教程网

发布于

2024-08-09

更新于

2024-08-10

许可协议