MongoDB + express + node + bootstrap 搭建多人博客
这篇博客讲述如何搭建一个多人博客,需要一定的基础知识,用于思路整理和备忘。
第一步: 新建文件夹 blog ,结构如下:
- bin --- 可执行二进制文件,最终的启动接口。
- models --- 存储与数据、操作数据相关文件。
- public --- 存储静态文件。
- routes --- 存储路由文件。
- views --- 存储视图文件。
- app.js --- 程序主文件。
- package.json --- 程序相关信息。
第二步: 安装依赖模块
cnpm install express express-session connect-mongo connect-flash ejs markdown multer morgan serve-favicon debug cookie-parser body-parser mongodb --save
模块的主要作用如下:
- express --- web框架
- express-session --- express session中间件,用于处理session
- connect-mongo --- 配合session使用,用于将session连接数据库
- connect-flash --- 页面提示的中间件,基于session实现
- ejs --- 模板引擎
- markdown --- markdown文本解析中间件。
- multer --- 用于处理enctype="multipart/form-data"的表单数据。
- morgan --- 日志中间件。
- serve-favicon --- 处理web网站icon中间件
- debug --- 调试使用
- cookie-parser --- 处理cookie的中间件
- body-parser --- 处理post请求的中间件
- mongodb --- 连接数据库
第三步: 添加配置文件
在主目录下添加setting.js文件,配置端口号,数据库等基本信息,如下:
module.exports = {
cookieSecret: 'myblog',
db: 'blog',
host: 'localhost',
port:
};
第四步: 功能设计与路由设计
- 注册、登录、登出
- 查看文章、编辑文章、发表文章、删除文章
- 评论(留言)
- 页面通知: 使用connect-flash实现。connect-flash 是基于 session 实现的,它的原理很简单:设置初始值
req.session.flash={}
,通过req.flash(name, value)
设置这个对象下的字段和值,通过req.flash(name)
获取这个对象下的值,同时删除这个字段。
第五步: 权限设置
在主目录下添加 middlewares文件夹,添加文件check.js,如下:
module.exports = {
checkLogin: function checkLogin(req, res, next) {
if (!req.session.user) {
req.flash('error', '未登录');
return res.redirect('/signin');
}
next();
}, checkNotLogin: function checkNotLogin(req, res, next) {
if (req.session.user) {
req.flash('error', '已登录');
return res.redirect('back');//返回之前的页面
}
next();
}
};
第六步: 路由文件
根据功能设置路由
MongoDB + express + node + bootstrap 搭建多人博客的更多相关文章
- 设计node.js搭建多人博客的思路(不讲数据库)
1.1.4:搭建多人博客 1.功能分析 搭建一个简单的多人注册,登录,发表文章及登出功能的博客 2.设计目标 未登录:主页左侧导航显示home.login.register,右侧显示已发表文章,发表日 ...
- 2015年12月12 Node.js实战(一)使用Express+MongoDB搭建多人博客
序,Node是基于V8引擎的服务器端脚本语言. 基础准备 Node.js: Express:本文用的是3.21.2版本,目前最新版本为4.13.3,Express4和Express3还是有较大区别,可 ...
- nodejs实战《一起学 Node.js》 使用 Express + MongoDB 搭建多人博客
GitHub: https://github.com/nswbmw/N-blog N-blog 使用 Express + MongoDB 搭建多人博客 开发环境 Node.js: 6.9.1 Mong ...
- 第1章 Express MongoDB 搭建多人博客
学习环境 Node.js : 0.10.22 + Express : 3.4.4 + MongoDB : 2.4.8 + 快速开始 安装 Express express 是 Node.js 上最流行的 ...
- 【nodejs笔记4】搭建多人博客<内含http请求的get post方法区别>
功能分析 博客具有四个功能:注册 登录 登出 发表文章 界面设计 未登录: [主页 注册页 登录页] [主页] 主页 左侧 HOME ...
- 使用express+mongoDB搭建多人博客 学习(6)发表文章
发表文章 1.在modules文件夹下新建post.js var mongodb=require("./db"); function Post(name,title,post){ ...
- 使用express+mongoDB搭建多人博客 学习(3)connect-flash和mongodb,表单注册
1.根目录下新建settings.js,存放数据库配置 module.exports={ cookieSecret:"myblog", db:"blog", h ...
- 使用express+mongoDB搭建多人博客 学习(5)权限控制
修改index.js如下: var express = require('express'); var router = express.Router(); var crypto=require('c ...
- 使用express+mongoDB搭建多人博客 学习(2)路由与模板
修改index.js路由规则: var express = require('express'); var router = express.Router(); /* GET home page. * ...
随机推荐
- 在 Java 的反射中,Class.forName 和 ClassLoader 的区别
1. 解释 在java中Class.forName()和ClassLoader都可以对类进行加载.ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全 ...
- samba多用户
注意的点 1:安装 服务器 yum install -y samba* 客户端 yum install -y samba-client cifs-utils 服务器端和客户端网络能ping通 2 ...
- c语言判断是否是utf8字符串,计算字符个数
#include <stdio.h> #include <string.h> #include <stdlib.h> /********************** ...
- 转:IDEA 与 eclipse 的部分区别!
Idea 与 Eclipse 快捷键的区别,上为Eclipse的快捷键,下为Idea的快捷键查找类名CTRL + SHIFT + RCTRL + N 查找JAR包中的类CTRL + SHIFT + T ...
- Linux CentOS 7下Memcached 安装与配置
前言 本篇文章记录一下Linux CentOS 7中关于Memcached的安装与配置. 安装 安装memcached之前首先需要安装libevent,我这里用的版本是: •libevent-2.0. ...
- loj #2021. 「AHOI / HNOI2017」大佬
#2021. 「AHOI / HNOI2017」大佬 题目描述 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢 ...
- sap alv 单元格行列邓颜色设定(记录一下网址,供下次使用)
https://www.cnblogs.com/mingdashu/p/color_alv.html
- P3369 【模板】普通平衡树(权值线段树)
原来线段树还有这种操作(开成一个桶) 用区间维护在这个区间内元素的个数,离散化一下,居然能达到splay的效果 不仅码量大大减少,而且跑的飞快!!! 6种操作 200多ms 插入 xx 数 删除 x ...
- P3167 [CQOI2014]通配符匹配 题解
题目 题目大意 给出一个字符串,其中包含两种通配符 ‘?’和 ‘*’ ,‘?’可以代替一个字符,‘*’可以代替一个字符串(长度可以为0) 然后给出几个字符转,判断能否用给出的字符串表示出来 样例解释 ...
- springboot开发环境搭建
姓名:陈中娇 班级:软件151 第一步:在Eclipse下面配置Maven环境: 一.使用spring boot新建maven工程不在需要建立maven web工程,只要一般的maven工程就好了 ...