本章博客主要针对之前写的一篇博客的修改
- 博客连接:
https://blog.csdn.net/belle_mei/article/details/108404568
主要修改的部分
- 增加了一个连接数据库和创建表的文件student.js
var mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27017/test", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
var Schema = mongoose.Schema;
var studentSchema = new Schema({
name: {
type: String,
required: true,
},
gender: {
type: Number,
enum: [0, 1],
default: 0,
},
age: {
type: Number,
},
hobbies: {
type: String,
},
});
module.exports = mongoose.model("Student", studentSchema);
- router.js 文件的修改的主要部分
router.post("/students/new", function (req, res) {
//1、获取表单请求
//2、处理
//将数据保存到db.json文件中以持久化
//3、发送响应
//先读取处理,转成对象
//然后往数据中push数据
//将对象转换为字符串
//最后将字符串写入文件
//这是MongoDB数据库操作
new Student(req.body).save(function (err) {
if (err) {
return res.status(500).send("Server Error!");
}
res.redirect("/students");
});
//这是文件操作时
// Student.save(req.body, function (err) {
// if (err) {
// return res.status(500).send("Server Error!");
// }
// res.redirect("/students");
// });
});
router.get("/students/edit", function (req, res) {
//1、在客户端的列表页中处理链接问题(需要id参数)
//2、获取需要编辑学生的id
//3、渲染编辑页面
//这里数据库和文件操作一样
Student.findById(req.query.id, function (err, student) {
if (err) {
return res.status(500).send("Server Error!");
}
res.render("edit.html", {
student: student,
});
});
});
router.post("/students/edit", function (req, res) {
// Student.updateById(req.body, function (err) {
// if (err) {
// return res.status(500).send("Server Error!");
// }
// res.redirect("/students");
// });
Student.findByIdAndUpdate(req.body.id, req.body, function (err) {
if (err) {
return res.status(500).send("Server Error!");
}
res.redirect("/students");
});
});
router.get("/students/delete", function (req, res) {
//1、获取要删除的id
//2、根据id进行删除操作
//3、根据操作结果发送响应数据
// Student.deleteById(req.query.id, function (err) {
// if (err) {
// return res.status(500).send("Server Error!");
// }
// res.redirect("/students");
// });
Student.findByIdAndDelete(req.query.id, function (err) {
if (err) {
return res.status(500).send("Server Error!");
}
res.redirect("/students");
});
});
- 注意在首页的部分
<tr>
<!--这这里要将$value.id改成$index + 1,否则页面中显示的序号就是MongoDB数据表中的id数(一串很长的字符串) -->
<td>{{$index + 1}}</td>
<td>{{$value.name}}</td>
<td>{{$value.gender}}</td>
<td>{{$value.age}}</td>
<td>{{$value.hobbies}}</td>
<td>
<a href="/students/edit?id={{$value.id}}">编辑</a>
<a href="/students/delete?id={{$value.id}}">删除</a>
</td>
</tr>
总结
本次的学习让我了解了MongoDB数据库,虽然是一个简单的增删查改,但是里面蕴藏的知识却是丰富的,希望自己往后能够多加思考问题,多尝试解决问题。