Node.js学习笔记-----day05 (使用MongonDB重写学生信息管理案例)

认真学习,认真记录,每天都要有进步呀!!!
加油叭!!!


使用MongonDB重写学生信息管理案例

1. 显示首页

var mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/itcast', { useMongoClient: 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.get('/students', function (req, res) {
  Student.find(function (err, students) {
    if (err) {
      return res.status(500).send('Server error....')
    }
    res.render('index.html', {
      students: students
    })
  })
})
 <th scope="row">{{$value.id}}</th>
  • 更换成:
 <th scope="row">{{$index+1}}</th>

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20201014151053285.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTAzNjEy,size_16,color_FFFFFF,t_70#pic_center)

2.实现添加学生

router.js

 router.get('/students/new', function (req, res) {
   res.render('new.html')
 })
router.post('/students/new', function (req, res) {
  new Student(req.body).save(function (err) {
    if (err) {
      return res.status(500).send('Server error.')
    }
    res.redirect('/students')
  })
})

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20201014151619724.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTAzNjEy,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20201014151639782.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTAzNjEy,size_16,color_FFFFFF,t_70#pic_center)

3.处理渲染编辑页面

因为数据库中存储的id_id,所以
将:

<td>
   <a href="/students/edit?id={{ $value.id }}">编辑</a>
   <a href="/students/delete?id={{ $value.id }}">删除</a>
</td> 

更改为:

<td>
 <a href="/students/edit?id={{ $value._id }}">编辑</a>
  <a href="/students/delete?id={{ $value._id }}">删除</a>
</td>
router.get('/students/edit', function (req, res) {
  Student.findById(req.query.id.replace(/"/g, ''), function (err, student) {
    if (err) {
      console.log(err)
      return res.status(500).send('Server error.')
    }
    res.render('edit.html', {
      student: student
    })
  })
})

注意:
replace(/"/g, '') 因为id带有引号,所以需要替换一下
将引号替换成空, /"/g 表示全部替换

在这里插入图片描述
来吧展示:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20201014154322998.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTAzNjEy,size_16,color_FFFFFF,t_70#pic_center)

4.处理编辑功能

router.js

router.post('/students/edit', function (req, res) {
  var id = req.body.id.replace(/"/g, '')
  Student.findByIdAndUpdate(id, req.body, function (err) {
    if (err) {
      return res.status(500).send('Server error.')
    }
    res.redirect('/students')
  })
})

来吧展示:

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20201014154720899.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTAzNjEy,size_16,color_FFFFFF,t_70#pic_center)

5.实现删除功能

router.get('/students/delete', function (req, res) {
  var id = req.query.id.replace(/"/g, '')
  Student.findByIdAndRemove(id, function (err) {
    if (err) {
      return res.status(500).send('Server error.')
    }
    res.redirect('/students')
  })
})

来吧展示:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20201014154817435.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTAzNjEy,size_16,color_FFFFFF,t_70#pic_center)

删除Chinatsu这条数据
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20201014155140433.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTAzNjEy,size_16,color_FFFFFF,t_70#pic_center)

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20201014155306599.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTAzNjEy,size_16,color_FFFFFF,t_70#pic_center)

posted @ 2020-10-15 21:07  杨芋可可  阅读(145)  评论(0)    收藏  举报