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