const express = require('express');
const path = require('path')
const fs = require('fs')
const rout = express.Router();
const file_path = path.join(__dirname, '../data/student.json')
// 查询学生列表 搜索学生信息
rout.get('/student', (req, res) => {
fs.readFile(file_path, 'utf8', (err, data) => {
if (err) {
throw err;
}
data = JSON.parse(data)
if (req.query.name) {
data = data.filter((ele) => {
if (ele.name.includes(req.query.name)) {
return ele;
}
})
}
res.render('student/index', {
title: '学生信息列表',
data
})
})
})
// 删除学生信息
rout.get('/student/remove', (req, res) => {
const removeId = req.query.id;
fs.readFile(file_path, 'utf8', (err, data) => {
if (err) {
throw err;
}
data = JSON.parse(data)
const index = data.findIndex((ele, index) => {
if (ele.id = removeId) {
return index;
}
})
if (index >= 0) {
data.splice(index, 1)
}
fs.writeFile(file_path, JSON.stringify(data, null, 4), (err) => {
res.redirect('/student')
})
})
})
// 新建学生页面
rout.get('/student/add', (req, res) => {
res.render('student/add.ejs')
})
// 新建学生页面 提交
rout.post('/student/add/submit', (req, res) => {
const studentToadd = Object.assign({
id: Date.now()
}, req.body)
fs.readFile(file_path, 'utf8', (err, data) => {
if (err) {
throw err;
}
data = JSON.parse(data);
data.push(studentToadd);
fs.writeFile(file_path, JSON.stringify(data, null, 4), (err) => {
res.redirect('/student')
})
})
})
// 修改学生页面
rout.get('/student/update', (req, res) => {
fs.readFile(file_path, 'utf8', (err, data) => {
data = JSON.parse(data);
data = data.find((ele) => {
if (ele.id == req.query.id) {
return ele;
}
})
res.render('student/update.ejs', {
data,
})
})
})
// 修改学生页面提交
rout.post('/student/update/submit', (req, res) => {
fs.readFile(file_path, 'utf8', (err, data) => {
if (err) {
throw err;
};
console.log(req.body)
data = JSON.parse(data);
data.forEach((ele) => {
if (ele.id == req.body.id) {
Object.assign(ele, req.body)
}
});
fs.writeFile(file_path, JSON.stringify(data, null, 4), (err) => {
res.redirect('/student')
})
})
})
module.exports = rout;
Nodejs-增删改查-案列方法
猜你喜欢
转载自blog.csdn.net/qq_45802159/article/details/103815963
今日推荐
周排行