Nodejs-增删改查-案列方法

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;
发布了151 篇原创文章 · 获赞 1 · 访问量 1884

猜你喜欢

转载自blog.csdn.net/qq_45802159/article/details/103815963