B站学习node.js,用Expres实现简单的增删改查(MongoDB实现)

本章博客主要针对之前写的一篇博客的修改

  • 博客连接:
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数据库,虽然是一个简单的增删查改,但是里面蕴藏的知识却是丰富的,希望自己往后能够多加思考问题,多尝试解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值