Node.js专题 (2) 做一个留言板 2017/3/24 – Payne

Slides:



Advertisements
Similar presentations
教师成绩录入步骤 1. 登录教务系统 2. 进入教师成绩管理界面 3. 选择相应的教学班,点击 “ 课程成绩录 入 ” 进入成绩录入界面 4. 点击 “ 设置 ” 按钮设置 “ 成绩分项 ” 5. 录入成绩, “ 保存成绩 ” 按钮可以保存成 绩但不提交(提交后不能再修改成绩) 6. “ 提交成绩 ”
Advertisements

教师队伍建设 组员:王英利 赵香媖 侯娟. 主讲内容 2. 中小学教师队伍建设 1. 职业教育师资队伍建设国际比较 3. 高校教师队伍建设与管理.
7.2 图示化记忆 记忆的概述 图示化记忆 联想记忆法 奇特联想记忆法 用手记忆.
《中国知识产权指数报告 2009 》 新闻发布会 1. 中国第一份 IP 指数报告 -- 探索知识产权发展与经济增长关联度 2008 年 2009 年 2.
教務處註冊組 /7 (二) 10 : 00 至 15 : 00 止 ★ 6/8 彙整報名資料後, 6/9 向高中承 辦學校報名 ★ 因校內作業時間緊迫,逾時恕不 受理。 校內報名時間.
三水区安监局 企业安全用电 2013年4月.
當我已老 謹以此文獻給像我一樣流浪在外的子女們.
提 纲 三次考察与改革的回顾 1 学院三周来的新面貌 及下一步工作思路 2 凝心聚力、团结协作、狠抓落实 3.
——以通渭县图书馆青树小项目“携老上网游”为例
企业价值收益法评估 ----财务报表调整 主讲人:阮咏华 1.
2015年12月14日-2015年12月20日 缩略版.
指導老師:羅夏美 組別:第四組 組員: 車輛二甲 蔡中銘 車輛三甲 莊鵬彥 國企二甲 陳于甄 國企二甲 詹雯晴 資傳二乙 林怡芳
广西师范大学教科院马佳宏 电 话 0773- (O) 高校教师资格认定考试的若干事项 广西师范大学教科院马佳宏 电 话 0773- (O)
考点作文十大夺魁技法 第28课时 写作(二) 考点作文十大夺魁技法 6-10 ·新课标.
大规模互联网用户密码泄露 风险控制对策 吴锐
2013浙江省行测专题 密卷解析及备考冲刺 罗 姮.
舊石器時代 位置: 亞洲大陸東緣,西太平洋弧狀列島一部份 背景 形成: 兩千多萬年前逐漸隆起,形成島嶼 生物: 大角鹿、猛瑪象、亞洲大陸原始人 臺東 長濱文化 苗栗 網形文化 臺南 左鎮人目前臺灣發現最早人類化石 代表 文化 1.住在海邊洞穴-短期定居小型隊群 2.以採集、狩獵為生 3.使用礫石砍伐器、片器、尖器.
財團法人天主教 聖馬爾定醫院新進報到職前訓練簡報 竭誠歡迎您加入 我們的行列.
审计案例研究 第一讲 辅导教师 周桂芝.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
DSE 放榜.
二十世纪外国文学专题 章丘电大 李颜.
职 业 礼 仪 讲师:刘巍女士.
李建民 教授 北京百川健康科学研究院 脊柱健康技术研究中心
作精純的鹽 馬太福音五:13.
“网络问政”给九江新闻网 带来新的发展机遇 -- 九江新闻网 高立东 --.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
MVC Servlet与MVC设计模式.
低碳生活,从小事做起 编辑人:刘瑞兴 指导老师:麦文燕 吴霞 编辑地址;岭南师范学院附属中学 编辑时间:
三大自然区的内部差异 地理 全日制普通高级中学教科书(选修) 第二册 人民教育出版社地理社会室 编著 人民教育出版社 关于.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
第三章 菜单的设计与制作 第一节 菜单的重要性 第二节 菜单的种类及其特点 第三节 菜单的设计与制作.
第三章 心理安全 广西师范大学 罗蕾.
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
时间管理 -----高一团体辅导.
社会工作概论 个案工作 课程培训 深圳电大 赖小乐.
前言.
公共事務學系.
授課大綱 第一章 緒 論 第一節 應用文的意義 第二節 應用文的種類 第二章 書 信 第一節 書信的種類 第二節 書信的結構 第三章 便 條
网络协会2017培训 Node.js专题 (1) 2017/3/12 – Payne.
网络协会2017培训 恶补Web知识训练营 2017/4/7 – Payne.
SIP 封包擷取實驗.
SIP消息之 逐项讲解.
SIP协议 翁彦
讀者服務組 王蓉瑄 分機:2995 Wiley Interscience 簡介 讀者服務組 王蓉瑄 分機:2995
ProQuest Administrator Module (PAM) 使用說明
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
Web Crack 专题 – AJAX – 2016/11/18 – Payne 本次培训仅供教学内部用途 实验请遵守相关法律法规
別忘了你的好朋友 好像很多同學都不會設定學生信箱的收信方法 因此花了一些時間將這三個設定檔完成 教你怎麼設定 !
使用操作手冊 智泉國際事業有限公司 Update Aug 2015
Moodle Classroom Sign Up Instruction
INVENTEC Resell Web Site 第一次登入
102年圖書館導覽活動 陳孟珠
使用操作手冊 智泉國際事業有限公司 Update Aug 2015
交際障礙分組系統 交際障礙分組系統 班級:2439 組員: 組別:A01 林子婷 資訊三丁 D
目次检索 打印 下载 文字摘录 更换背景 多窗口阅读.
微信商城系统操作说明 色卡会智能门店.
蕭旭雯 中華民國期刊論文索引系統 蕭旭雯
如何检索统计申请与在研项目(科研人员) “科研之友”技术支持小组
2.1 高職與私立學校註冊操作說明 (2015/9/15上線)
新竹縣108學年度第1次國小以上 特殊教育鑑定安置說明會
進修學院與我.
動態問卷製作系統 B 謝宜軒 B 徐有盛 B 劉家偉 B 李緯涇.
慈惠醫護管理專科學校圖書館 館際合作使用方法.
此方案适用于如下车辆与车辆,车辆与人之间实现防撞,安装简单、方便快捷,可以有效的降低各种车辆碰撞事故,车辆碾压人员事故的发生。
“上海市教师教育课程资源共享管理平台” 学分银行操作指南
指導教授:吳有龍教授 學生:黃寶慧 學號: G 日期:2008年12月24日
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
教師檔案系統資料如何填寫? 如何對應教師評鑑共同基準?.
Presentation transcript:

Node.js专题 (2) 做一个留言板 2017/3/24 – Payne 网络协会2017培训 Node.js专题 (2) 做一个留言板 2017/3/24 – Payne

留言板基础需求 1. 查看留言版的内容,支持翻页 2. 访客匿名留言 3. 和谐词简单过滤 4. 允许管理员登录,管理留言内容(屏蔽)

留言板参考 https://git.coding.net/payne/message-wall- backend.git

留言板参考技术 前端: 1. JS + JSON 2. AJAX (XHR) 后端: 1. Node.js + Express 2. MongoDB

项目目录结构 -> common 通用函数 -> controllers 控制器 【具体的页面/接口逻辑】 -> models 数据模型 【对接数据库】 -> views 前端界面模板 (WebAPP不需要) -> public 前端静态文件夹 (采用CDN可以不需要) -> proxy / services 代理层 (业务不复杂的项目不需要) -> routes 路由表 app.js 主程序入口 package.json Node.js 项目配置文件

数据库的设计

留言板的数据库结构 1. 留言表 Message Table 2. 账号表 User Table

留言表的数据结构 1. from <ObjectID> 留言人ID 2. content <String> 留言内容 3. deleted <Boolean> 是否被删除 4. deletedReason <String> 删除原因 5. ip <Number> 留言人IP 6. createdAt <Date> 留言时间

账号表的数据结构 1. username <String> 用户名 2. password <String> 密码Hash 3. salt <String> 盐值 4. nickname <String> 昵称 5. role <Number> 角色ID 6. email <String> 邮箱地址 7. deleted <Boolean> 是否被删除 8. createdAt <Date> 注册时间

按照数据结构写Models

功能接口设计

目标 由于前后端分离的需要,前端与后端的沟通完全依 靠XHR (AJAX)或者Fetch访问JSON的接口。

控制器 1. 留言 Message (/message) 2. 用户 User (/user)

留言控制器 方法: 1. 发布留言 - /post – POST 2. 获取留言列表 - /list - POST 3. 管理员删除留言 - /remove - POST

用户控制器 方法: 1. 注册 - /register – POST 2. 登录 - /login - POST 3. 管理员屏蔽用户 - /ban - POST

小例子 — 登录 user/login 接口URI:/users/login 采用POST方法。 传入参数有: 1. username 用户名 2. password 明文密码 输出对象: 1. userInfo 登录用户的信息 (返回昵称等信息)

小例子 — 登录 user/login 权限检查中间件 登录控制器 通用数据返回

获取uesername和password 小例子 — 登录 user/login 获取uesername和password 获取username对应的用户信息 校验密码(hash) 存储session

小例子 — 登录 user/login 需要使用EventProxy组织执行顺序。 ep.once, ep.doneLater, ep.emitLater 可以看上一次培训复习

注册 user/register 接口URI:/users/register 采用POST方法。 传入参数有: 1. username 用户名 2. password 明文密码 3. nickname 昵称 4. email 邮箱 输出对象: 成功状态

注册 user/register 获取注册需要参数 检测数据合法性 检测重复用户名和昵称等 生成salt和hash 保存用户信息

管理员屏蔽用户 user/ban 接口URI:/users/ban 采用POST方法。 传入参数有: 1. user_id 目标用户ID 输出对象: 成功状态 需要用到 MongoDB 的 update

管理员屏蔽用户 user/ban 权限检查中间件 (非管理员则禁止访问) 用户屏蔽控制器 通用数据返回

管理员屏蔽用户 user/ban 获取user_id 检测用户状态 更新用户状态为屏蔽/正常

获取留言列表 message/list 接口URI:/message/list 采用POST方法。 传入参数有: 1. page 页码 输出对象: 对应页码的留言的数组 需要用到 MongoDB 的 find

发布留言 message/post 接口URI:/message/post 采用POST方法。 传入参数有: 1. content 留言内容 输出对象: 成功状态 需要用到 MongoDB 的 Model.save

发布留言 message/post 权限检查中间件 (非登录用户则禁止访问) 发布留言控制器 通用数据返回

前端页面设计

概要 时间紧迫,不使用特殊的框架。 通过XHR/Fetch访问接口。 采用单页面WebAPP。