node.js完成增删改
完成项目的创建后
var express = require('express')
var app = express()
var fs = require('fs')
app.use(express.json())
var bodyParser = require('body-parser')
// 配置模板引擎和 body-parser 一定要在 app.use(router) 挂载路由之前
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
// 配置模板引擎
app.engine('html', require('express-art-template'));
//显示首页,学生列表
app.get('/index', function (require,response) {
//'utf-8'是将json字符串转换成字符串。不加'utf-8'也可以使用data.toString()
fs.readFile('./db.json','utf-8', function (err,data) {
if(err){
console.log(err)
}
response.render('index.html',{
students:JSON.parse(data).students
})
})
})
//渲染学生添加页面
app.get('/new', function (require,response) {
response.render('new.html')
console.log(require.body)
console.log("收到表单的提交!!!")
})
//添加页面提交
app.post('/new', function (require,response) {
console.log(require.body)
fs.readFile('./db.json', 'utf-8', function (err,data) {
if (err) {
return res.status(500).send('Server error.')
}
var students = JSON.parse(data).students
var student = require.body
student.age = parseInt(student.age)
student.id = parseInt(students[students.length - 1].id) + 1
console.log(student)
students.push(student)
var newStudents = JSON.stringify({students:students})
fs.writeFile('./db.json', newStudents, function (err) {
if (err) {
return res.status(500).send('Server error.')
}
})
})
//重定向跳转路由
response.redirect('/index')
})
//删除学生
app.get('/delete', function (req,res) {
var id = req.query.id
fs.readFile('./db.json', 'utf-8', function (err,data) {
if(err) {
res.send(err)
}
var students = JSON.parse(data).students
var deleteId = students.findIndex(function(item) {
return parseInt(item.id) === parseInt(id)
})
console.log("这是我的下标,而不是我的id")
console.log(deleteId)
students.splice(deleteId,1)
var newStudents = JSON.stringify({students:students})
fs.writeFile('./db.json', newStudents, function(err) {
if(err) {
res.send(err)
}
})
})
res.redirect('/index')
})
//修改学生
app.get('/edit', function (req,res) {
var id = req.query.id
console.log(id)
fs.readFile('./db.json', 'utf-8', function(err,data) {
if(err) {
res.send(err)
}
var students = JSON.parse(data).students
var student = students.find(function(item) {
return parseInt(item.id) === parseInt(id)
})
console.log("这是我的一整项,而不是我的下标")
console.log(student)
res.render('edit.html', {
student
})
})
})
//修改提交信息
app.post('/edit', function(req,res) {
console.log(req.body)
var student = req.body
fs.readFile('./db.json', 'utf-8', function(err,data) {
if(err) {
res.send(err)
}
var students = JSON.parse(data).students
var studentIndex = students.findIndex(function(item) {
return parseInt(item.id) === parseInt(student.id)
})
students.splice(studentIndex,1,student)
students = JSON.stringify({students:students})
fs.writeFile('./db.json',students,function(err) {
})
})
res.redirect('/index')
})
app.listen(3000, function () {
console.log('3000.running!!!!')
})
标签:
node
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了