nodejs学生信息管理系统
时间: 2023-12-11 07:33:57 浏览: 94
以下是一个使用Node.js和Express框架实现的学生信息管理系统的示例:
```javascript
// 引入所需的模块
const express = require('express');
const fs = require('fs');
const path = require('path');
const bodyParser = require('body-parser');
const template = require('art-template');
// 创建Express应用程序
const app = express();
// 设置模板引擎
app.engine('html', template.__express);
app.set('view engine', 'html');
app.set('views', path.join(__dirname, 'views'));
// 解析请求体
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// 定义路由
app.get('/', (req, res) => {
// 读取学生信息
const students = JSON.parse(fs.readFileSync(path.join(__dirname, 'students.json'), 'utf8'));
// 渲染模板并返回页面
res.render('index', { students });
});
app.get('/add', (req, res) => {
// 渲染添加学生页面
res.render('add');
});
app.post('/add', (req, res) => {
// 读取学生信息
const students = JSON.parse(fs.readFileSync(path.join(__dirname, 'students.json'), 'utf8'));
// 添加新学生
students.push(req.body);
// 保存学生信息
fs.writeFileSync(path.join(__dirname, 'students.json'), JSON.stringify(students));
// 重定向到首页
res.redirect('/');
});
app.get('/edit/:id', (req, res) => {
// 读取学生信息
const students = JSON.parse(fs.readFileSync(path.join(__dirname, 'students.json'), 'utf8'));
// 查找要编辑的学生
const student = students.find(s => s.id === parseInt(req.params.id)); // 渲染编辑学生页面
res.render('edit', { student });
});
app.post('/edit/:id', (req, res) => {
// 读取学生信息
const students = JSON.parse(fs.readFileSync(path.join(__dirname, 'students.json'), 'utf8'));
// 查找要编辑的学生
const student = students.find(s => s.id === parseInt(req.params.id));
// 更新学生信息
Object.assign(student, req.body);
// 保存学生信息
fs.writeFileSync(path.join(__dirname, 'students.json'), JSON.stringify(students));
// 重定向到首页
res.redirect('/');
});
app.get('/delete/:id', (req, res) => {
// 读取学生信息
const students = JSON.parse(fs.readFileSync(path.join(__dirname, 'students.json'), 'utf8'));
// 删除指定学生
const index = students.findIndex(s => s.id === parseInt(req.params.id));
students.splice(index, 1);
// 保存学生信息
fs.writeFileSync(path.join(__dirname, 'students.json'), JSON.stringify(students));
// 重定向到首页
res.redirect('/');
});
// 启动服务器
app.listen(3000, () => {
console.log('Server is running at http://localhost:3000');
});
```
该示例使用了Express框架和art-template模板引擎,实现了对JSON文件中存储的学生信息进行增删改查的功能。具体实现包括:
1. 使用`fs`模块读取和保存学生信息;
2. 使用`body-parser`中间件解析请求体;
3. 使用`art-template`模板引擎渲染页面;
4. 定义路由实现增删改查功能。
阅读全文