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

加油叭!!!


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

1. 显示首页

  • 先在crud-demo目录下安装mongoose

  • 改写student.js

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
})
})
})
  • node执行app.js

    页面显示:

  • 数据库中存储的 id不能在页面上直接显示

 <th scope="row">{{$value.id}}</th>
  • 更换成:
 <th scope="row">{{$index+1}}</th>

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')
})
})



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 表示全部替换



来吧展示:

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')
})
})

来吧展示:

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')
})
})

来吧展示:

删除Chinatsu这条数据

最新文章

  1. hibernate基础
  2. VS调试时同时启动多个项目解决方法
  3. herf窗口点击跳转
  4. Android中Preference的使用以及监听事件分析
  5. DropdownList的处理总结
  6. python实现XSS过滤(BeautifulSoup和白名单处理)
  7. python_怎么格式化字符串?
  8. pyhive 连接 Hive 时错误
  9. go连接mysql
  10. 网易云课堂-----Linux内核分析-----期末主观题
  11. 【Python】数据库练习-1
  12. win10无法访问samba共享
  13. 使用Koa2搭建web项目
  14. TeamWork#1,Week 2,Learn In Team
  15. GeoServer安装说明-OpenSpirit
  16. 234. Palindrome Linked List(判断链表是否回文)
  17. Android四大组件--活动(Activity)
  18. (译)Windows Azure:移动后端开发的主要更新
  19. 20145310 《Java程序设计》第8周学习总结
  20. Hessian矩阵【转】

热门文章

  1. Pyside2 开发框架
  2. uwsgi 启动配置文件
  3. kubernetes_CoreDNS全解析
  4. VulnHub靶场渗透实战8-DarkHole: 2
  5. AI绘画提示词创作指南:DALL&#183;E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵
  6. Vue GET xxxx/sockjs-node/info?t=1573626343344 net::ERR_CONNECTION
  7. 无人机集群的分布式协作 VI-SLAM
  8. Linux系统CentOS6找回密码解决方法
  9. 学习ASP.NET Core Blazor编程系列十七——文件上传(上)
  10. 使用time.Time数据类型获取时间报错