这是一个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