1. 程式人生 > >node留言板

node留言板

 

 

 

 

這是一個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