使用nodejs编写框架。音乐名,歌手名,发行年份,评分(1-10)写三行数据 文件写入方法,添加一条json数据 将新的music.json 通过http://127.0.0.1:9000,在网页端显示
时间: 2024-09-19 15:01:31 浏览: 54
read-write-csv-nodejs:读取和写入CSV数据的代码
使用Node.js编写框架时,我们可以创建一个简单的web服务器,并结合`fs`模块(处理文件系统操作)和`express`(用于构建Web应用)来实现上述需求。这里是一个基本示例:
首先,安装必要的依赖:
```bash
npm init -y
npm install express body-parser
```
然后创建一个名为`server.js`的文件,编写以下代码:
```javascript
const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
// 创建 Express 应用
const app = express();
app.use(bodyParser.json());
// 定义music.json 文件路径
const musicDataPath = 'music.json';
// 如果文件不存在,初始化为空数组
if (!fs.existsSync(musicDataPath)) {
fs.writeFileSync(musicDataPath, '[]');
}
// 读取已有数据或创建新数组
let musicData = JSON.parse(fs.readFileSync(musicDataPath, 'utf8'));
// 添加音乐信息函数
function addMusicInfo(song) {
musicData.push(song);
fs.writeFileSync(musicDataPath, JSON.stringify(musicData));
}
// API 接口,接收请求并添加数据
app.post('/add', (req, res) => {
const { title, artist, year, rating } = req.body;
if (!title || !artist || !year || typeof rating !== 'number' || rating < 1 || rating > 10) {
return res.status(400).send('Invalid data format');
}
const newSong = { title, artist, year, rating };
addMusicInfo(newSong);
res.send({ message: 'Music added successfully' });
});
// 开启本地服务器监听
app.listen(9000, () => {
console.log('Server is running at http://127.0.0.1:9000/');
});
// 在浏览器访问显示数据
// 这里假设我们有个简单的HTML模板来渲染数据,比如index.html
// 模板中有一个script标签获取数据并展示
// (假设data是音乐数据)
// index.html
// <script>
// fetch('/getMusicData')
// .then(response => response.json())
// .then(data => {
// // 在DOM中插入或更新音乐列表
// // ...
// })
// .catch(error => console.error(error));
// </script>
// /getMusicData API 接口
app.get('/getMusicData', (req, res) => {
try {
res.json(musicData);
} catch (error) {
res.status(500).send('Failed to fetch data');
}
});
```
现在,当你通过POST请求向`http://127.0.0.1:9000/add`发送包含音乐信息的数据,如`curl -X POST -H "Content-Type: application/json" -d '{"title": "歌曲名", "artist": "歌手名", "year": 2023, "rating": 9}' http://127.0.0.1:9000/add`,数据会保存到`music.json`中。
同时,你可以通过GET请求`http://127.0.0.1:9000/getMusicData`来获取并显示所有音乐数据。
阅读全文