在不使用数据库的情况下 基于node.js中的Express 实现增删改查
时间: 2024-03-10 10:43:13 浏览: 91
可以使用Node.js的Express框架,结合文件系统模块(fs模块)来实现基于文件的增删改查操作。具体步骤如下:
1. 安装Express框架和body-parser模块,用于解析POST请求中的参数。
```
npm install express body-parser --save
```
2. 创建一个用于存储数据的JSON文件,例如data.json。
3. 创建一个Express应用,并设置路由。
```javascript
const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
const app = express();
const dataPath = './data.json';
// 解析POST请求中的参数
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// 获取所有数据
app.get('/api/data', (req, res) => {
const rawData = fs.readFileSync(dataPath);
const data = JSON.parse(rawData);
res.json(data);
});
// 添加数据
app.post('/api/data', (req, res) => {
const rawData = fs.readFileSync(dataPath);
const data = JSON.parse(rawData);
const newData = req.body;
data.push(newData);
const stringifyData = JSON.stringify(data);
fs.writeFileSync(dataPath, stringifyData);
res.json({ success: true });
});
// 删除数据
app.delete('/api/data/:id', (req, res) => {
const rawData = fs.readFileSync(dataPath);
const data = JSON.parse(rawData);
const id = req.params.id;
const newData = data.filter(item => item.id !== id);
const stringifyData = JSON.stringify(newData);
fs.writeFileSync(dataPath, stringifyData);
res.json({ success: true });
});
// 修改数据
app.put('/api/data/:id', (req, res) => {
const rawData = fs.readFileSync(dataPath);
const data = JSON.parse(rawData);
const id = req.params.id;
const index = data.findIndex(item => item.id === id);
if (index !== -1) {
const newData = req.body;
data[index] = newData;
const stringifyData = JSON.stringify(data);
fs.writeFileSync(dataPath, stringifyData);
res.json({ success: true });
} else {
res.status(404).json({ success: false, message: '数据不存在' });
}
});
// 查询数据
app.get('/api/data/:id', (req, res) => {
const rawData = fs.readFileSync(dataPath);
const data = JSON.parse(rawData);
const id = req.params.id;
const result = data.find(item => item.id === id);
if (result) {
res.json(result);
} else {
res.status(404).json({ success: false, message: '数据不存在' });
}
});
// 监听端口
const port = 3000;
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
```
在实际使用中,可以根据具体的需求进行修改和完善。注意在修改和删除操作中,需要判断数据是否存在。
阅读全文