node留言板
阿新 • • 發佈:2018-12-03
這是一個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