这是一个nodejs + mongodb 的小项目,对数据库的增删改查

1. 引入项目依赖

    "art-template": "^4.13.2",
"body-parser": "^1.18.3",
"express": "^4.16.4",
"express-art-template": "^1.0.1",
"mongoose": "^5.3.14"

2. 项目路径 --- app.js

var express = require('express')
var bodyParser = require('body-parser')
var router = require('./router') var app = express() app.use('/public/', express.static('./public/'))
app.engine('html', require('express-art-template'));
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded app.use(router) app.listen(3000, function(){
console.log('running...')
})

3. 数据库连接,创建模型  --- db.js

var mongoose = require('mongoose');
var user = mongoose.Schema; // 连接 MongDB 数据库
mongoose.connect('mongodb://localhost/demo',{ useMongoClient: true }) var userSchema = new user({
name: {
type: String,
required: true
},
message: {
type: String,
required: true
},
time: {
type: String
}
}) // 将稳定结构发布为模型
// mongoose.mondel 方法就是用来将一个架构发布为 model module.exports = mongoose.model('Students', userSchema)

4. 项目路由 --- router.js

var express = require('express')

var student = require('./db')

var router = express.Router()

// 首页
router.get('/', function (req, res) { student.find(function (err, ret){
if (err) {
return res.status(500).send('Server error.')
} else {
res.render('index.html', {
dataList: ret
});
}
})
}) // 添加留言页面
router.get('/add', function (req, res) {
res.render('addpage.html')
}) // 添加留言
router.post('/addMsg', function (req, res) {
var message = new student({
name: req.body.name,
message: req.body.message,
time: '2018年12月2日17:00:38'
}) message.save(function (err, ret) {
if (err) {
return res.status(500).send('Server error.')
}
res.redirect('/')
})
}) // 更新留言界面
router.get('/update', function (req, res) {
student.findById(req.query.id, function (err, ret) {
if(err){
return res.status(500).send('Server error.')
}
res.render('update.html', {
data: ret
});
})
}) // 更新留言
router.post('/updateMsg', function (req, res) {
student.findByIdAndUpdate(req.body.id, {
name: req.body.name,
message: req.body.message
}, function(err, ret) {
if (err) {
return res.status(500).send('Server error.')
}
res.redirect('/')
})
}) // 删除留言
router.get('/delete', function (req, res) {
student.findByIdAndDelete(req.query.id, function (err, ret) {
if (err) {
return res.status(500).send('Server error.')
}
res.redirect('/')
})
}) module.exports = router

项目地址 链接:https://pan.baidu.com/s/14f6ij5hpgQXSS3y5t9wJ5A  密码:jyj1

最新文章

  1. 等差数列(bzoj 3357)
  2. 【转】Flex 布局语法教程
  3. python 中文乱码问题2
  4. AsyncTask 轻量级的异步类
  5. poj 1741 树的分治
  6. MVC 提交表单
  7. 安装redis,含安装步骤和安装中出现的详细错误分析
  8. Android软键盘弹出时布局问题
  9. cocos2d-js 入门一 ([isNaN()和isFinite(),字符和Number之间的转化)
  10. RMQ之ST算法
  11. 【转】WEB网站常见受攻击方式及解决办法
  12. 测试驱动开发TDD(test drive development)
  13. [pip]upgrade outdated pip package on windows / 在windows上更新所有过时的pip包
  14. iOS----------常用三方库
  15. 社交系统ThinkSNS+安装部署演示
  16. 多线程、互斥锁、异步、GIL
  17. Node bak
  18. postgresql中uuid的使用
  19. 4-1 R语言函数 lapply
  20. Arthas Alibaba 开源 Java 诊断工具

热门文章

  1. 基于Python协同过滤算法的认识
  2. Python——Pandas速查手册中文版
  3. Ng的数组绑定
  4. IDEA 学习笔记之 Java项目开发
  5. HashMap 取数算法
  6. Linux入门(服务)
  7. 04-09 XgBoost算法
  8. react-native开发经验
  9. MySQL逻辑架构、SQL加载执行顺序、七种JOIN模式图解
  10. C#刷遍Leetcode面试题系列连载(4) No.633 - 平方数之和