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
node留言板的更多相关文章
- node留言板开发————node.js
各位需要的话可以下载去看一下. 源码下载链接:https://download.csdn.net/download/weixin_41018304/11833778
- 原生node实现简易留言板
原生node实现简易留言板 学习node,实现一个简单的留言板小demo 1. 使用模块 http模块 创建服务 fs模块 操作读取文件 url模块 便于path操作并读取表单提交数据 art-tem ...
- 用 Express4 写一个简单的留言板
Knowledge Dependence:阅读文本前,你需要熟悉 Node.js 编程.Express 以及相关工具和常用中间件的使用. Node.js 以其单线程异步非阻塞的特点,越来越被广大的 W ...
- AngularJs学习笔记(制作留言板)
原文地址:http://www.jmingzi.cn/?post=13 初学Anjularjs两天了,一边学一边写的留言板,只有一级回复嵌套.演示地址 这里总结一下学习的过程和笔记.另外,看看这篇文章 ...
- dd——留言板再加验证码功能
1.找到后台-核心-频道模型-自定义表单 2.然后点击增加新的自定义表单 diyid 这个,不管他,默认就好 自定义表单名称 这个的话,比如你要加个留言板还是投诉建议?写上去呗 数据表 这个不要碰, ...
- asp.net留言板项目源代码下载
HoverTree是一个asp.net开源项目,实现了留言板功能. 前台体验网址:http://hovertree.com/guestbook/ 后台请下载源代码安装. 默认用户名:keleyi 默认 ...
- html的留言板制作(js)
这次留言板运用到了最基础的localstorage的本地存储,展现的效果主要有: 1.编写留言2.留言前可以编辑自己的留言昵称.不足之处: 1.未能做出我喜欢的类似于网易的叠楼功能. 2.未能显示评论 ...
- 11月8日PHP练习《留言板》
一.要求 二.示例页面 三.网页代码及网页显示 1.denglu.php 登录页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...
- [课程设计]Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案)
Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统W ...
随机推荐
- Postgressql高可用(pgpool+异步流复制)
文档结构: 由于博主之前是Oracle dba,oracle 高可用一般是rac,以及搭建ADG,一个是基于实例的高可用,一个是基于数据的容灾,甚至也有rac+adg的方式.Postgres有同步和异 ...
- 夯实Java基础系列18:深入理解Java内部类及其实现原理
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- SQL 存储过程示例讲解
create proc score_result ) --参数 as declare --定义变量@courseNo int, @testTime1 datetime, @avg int begin ...
- Jackson日期转换少一天
1. 案例 添加一个学生,前端把生日传给后端,后端使用Datel类型接收到后,然后调用其它服务进行保存入库. 与其它服务交互时,使用的是JSON格式,出现日期少一天. @Data @AllArgsCo ...
- Python操作三大主流数据库☝☝☝
Python操作三大主流数据库☝☝☝ Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数 ...
- 转 NAT技术详解
NAT产生背景 今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣.他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需.企业利用互联网发布信息,传递资料和 ...
- 简单理解TCP通信的三次握手
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接. 位码(可以理解为请求状态): 有6种标示:SYN(synchronous建立联机) ACK(acknowledg ...
- Spring Boot2 系列教程(十六)定时任务的两种实现方式
在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Qua ...
- css的简单使用
css语法 id选择器: id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式. HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 "#" 来定义. ...
- 10.Nginx流行架构LNMP
1.什么是LNMP架构 LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以 ...