设计node.js搭建多人博客的思路(不讲数据库)
1.1.4:搭建多人博客
1.功能分析
搭建一个简单的多人注册,登录,发表文章及登出功能的博客
2.设计目标
未登录:主页左侧导航显示home、login、register,右侧显示已发表文章,发表日期及作者
登陆后:主页左侧导航显示home、post、logout,右侧显示已发表文章,发表日期及作者
用户登录、注册、发表成功后 以及登出后都返回到主页
(1)未登录
主页

登录页

注册页

(2)登录后
主页

发表页

注意:没有登出页,点击logout后,退出登录并返回首页
3.路由规划
既然把设计的构想图贴出来了,接下来的任务就是完成路由规划了。路由规划,或者说控制器规划是整个网站的骨架部分,因为它处于整个架构的枢纽位置,相当于各个接口之间的黏合剂,所以应该优先考虑。
根据设计的构想图,做出以下路由规划:
/:首页
/login:用户登录
/register:用户注册
/post:发表文章
/logout:登出
要求/login和/register只能是未登录的用户访问,而/post和/logout只能是已登录的用户访问。左侧导航列表则针对已登录和未登录的用户显示不同的内容。
修改1.1.3节的index.js如下:
module.exports = function(app){
app.get("/",function(req,res){
res.render("index",{
title:"主页"
});
});
app.get("/login",function(req,res){
res.render("login",{
title:"登陆"
});
});
app.get("/register",function(req,res){
res.render("register",{
title:"注册"
});
});
app.get("/post",function(req,res){
res.render("post",{
title:"发布"
});
});
app.get("/logout",function(req,res){
});
};
如何针对已登录和未登录的用户显示不同的内容呢?或者说如何判断用户是否登录了呢?进一步说,如何记住用户的登录状态呢?我们可以通过引入会话(session)机制记住用户登录状态,还要访问数据库来保存和读取用户信息。在不久的将来,1.1.5节我们就来学习如何使用数据库。
bootstrap.min.css文件的下载地址或者直接引用也行:https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css
设计node.js搭建多人博客的思路(不讲数据库)的更多相关文章
- MongoDB + express + node + bootstrap 搭建多人博客
这篇博客讲述如何搭建一个多人博客,需要一定的基础知识,用于思路整理和备忘. 第一步: 新建文件夹 blog ,结构如下: bin --- 可执行二进制文件,最终的启动接口. models --- 存储 ...
- 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 上最流行的 ...
- 基于Node.js的ghost开源博客平台
Ghost 是一套基于Node.js 构建的开源博客平台(Open source blogging platform),具有易用的书写界面和体验. 1.安装node windows 下安装npm:ht ...
- Ubuntu14.04LTS下安装Node.js&NPM以及个人博客hexo的初始化配置
什么是hexo Hexo 是一款基于node 的静态博客网站生成器作者 :tommy351是一个台湾的在校大学生...相比其他的静态网页生成器而言有着,生成静态网页最快,插件丰富(已经移植了大量Oct ...
- 【nodejs笔记4】搭建多人博客<内含http请求的get post方法区别>
功能分析 博客具有四个功能:注册 登录 登出 发表文章 界面设计 未登录: [主页 注册页 登录页] [主页] 主页 左侧 HOME ...
- [js高手之路]Node.js+jade抓取博客所有文章生成静态html文件
这个周末,恶补了一下jade模板引擎,就为生成静态html文件,这篇文章需要知道jade以及看过我的上篇文章,我先给出他们的参考链接: [js高手之路]Node.js模板引擎教程-jade速学与实战1 ...
- 【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境
1. 安装webstorm 并破解 2. 安装node (以及express框架) 至官网下载并安装.(http://nodejs.org)v0.10.32 msi 安装后测试,打开命令行, c ...
随机推荐
- netty2 案例:数据通信
在实际的项目中应该如何使用netty去通信呢? 一般来说,会有以下三种情况, 1长连接 也就是服务器和客户端的通道一直不关闭,如果服务器性能非常好,并且在客户端数量不是很多的情况下,可以选择使用这种方 ...
- Apache ab性能测试结果分析
Apache ab性能测试结果分析 测试场景:模拟10个用户,对某页发起总共100次请求. 测试命令: ab -n 100 -c 10 地址 测试报告: Server Software: 被测服务器软 ...
- innobackupex 备份 Xtrabackup 增量备份
Mysql增量备份Xtrabackup中包含两个工具:• xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表(MYISAM表).• i ...
- java web+模板
这次测试需要在java web的基础上套入模板,在测试的过程中我遇到了许多问题,现在我可以使用模板来美化网页的许多格式.但是模板的许多代码我还是看不懂,其中有jquery的许多代码.在今后我会学习相关 ...
- print('{:15}|{:^9}|{:^9}'.format('', 'lat.', 'long.'))是什么意思?
平台:win10 x64+Python3.7.0 先了解下——Python3 字符串格式化 Python字符串的格式化方法分为两种,分别为占位符(%)和format方式. 占位符方式在Python2. ...
- ABP框架系列之五十一:(Timing-定时)
Introduction While some applications target a single timezone, some others target to many different ...
- python模块:time
# encoding: utf-8 # module time # from (built-in) # by generator 1.145 """ This modul ...
- 带权单源最短路发[稠密图](Dijkstra)
对于稠密图,采用邻接矩阵较为合适 所以我们先构建一个邻接矩阵 typedef int Vertex; typedef int WeightType; //图 typedef struct MyGrap ...
- Hadoop 综合揭秘——HBase的原理与应用
前言 现今互联网科技发展日新月异,大数据.云计算.人工智能等技术已经成为前瞻性产品,海量数据和超高并发让传统的 Web2.0 网站有点力不从心,暴露了很多难以克服的问题.为此,Google.Amazo ...
- Python 有序字典(OrderedDict)与 普通字典(dict)
Python 的基础数据类型中的字典类型分为:无序字典 与 有序字典 两种类型 1.无序字典(普通字典): my_dict = dict()my_dict["name"] = &q ...