基于NodeJS的秘室聊天室
2016-04-04 17:54
513 查看
借着放假期间将NodeJS重新回顾了一下并玩了一下sketch来进行设计界面,很不错。(注:代码整理后会放到github上,请关注。)
本次聊天室我给它定义了一个名称叫“秘密聊天室”。
需求:
技术选型:
后端:NodeJs,Socket.io,中间件(express,body-parser,multer,ejs),mongoose
express:是NodeJs Web应用框架,主要是要理解它的router
body-parser:用于获取req中的参数值
multer:用于上传文件
ejs:用于模板渲染
mongoose:连接mongoose数据库
数据库:mongodb
前端:bootstrap布局,vuejs进行双向绑定,请求还是使用的jquery的ajax,未使用fetch(主要是bootstrap是基于jquery的,所以没用使用webpack或browerify等打包工具进行处理fetch)。
实现:
1、创建web服务器
2、进行身份认证,哪些路由要进行身份处理。
4、数据库配置
5、定义数据模型
6、用户注册,登录
7、建立socket.io
8、前端代码就比较简单了,无否是一些请求而已,下面只截取前端socke.io部分。
运行效果:
1、登录
2、主界面
3、创建房间(创建自己感兴趣的话题)
3、模拟两个用户
4、每个房间鼠标移入会显示房间内容
5、加入房间,会提示谁加入
6、退出房间,同样会有提示,房间之间互不影响。
7、消息
在现阶段还有未完成部分。如消息的保存,人员头像,收藏等。
后续,希望可以将nodejs消息处理做成一个通用组件,安装消息中心后,任何系统中可以很方便调用。
最后来一张sketch的设计稿
本次聊天室我给它定义了一个名称叫“秘密聊天室”。
需求:
技术选型:
后端:NodeJs,Socket.io,中间件(express,body-parser,multer,ejs),mongoose
express:是NodeJs Web应用框架,主要是要理解它的router
body-parser:用于获取req中的参数值
multer:用于上传文件
ejs:用于模板渲染
mongoose:连接mongoose数据库
数据库:mongodb
前端:bootstrap布局,vuejs进行双向绑定,请求还是使用的jquery的ajax,未使用fetch(主要是bootstrap是基于jquery的,所以没用使用webpack或browerify等打包工具进行处理fetch)。
实现:
1、创建web服务器
2、进行身份认证,哪些路由要进行身份处理。
4、数据库配置
5、定义数据模型
6、用户注册,登录
7、建立socket.io
8、前端代码就比较简单了,无否是一些请求而已,下面只截取前端socke.io部分。
运行效果:
1、登录
2、主界面
3、创建房间(创建自己感兴趣的话题)
3、模拟两个用户
4、每个房间鼠标移入会显示房间内容
5、加入房间,会提示谁加入
6、退出房间,同样会有提示,房间之间互不影响。
7、消息
在现阶段还有未完成部分。如消息的保存,人员头像,收藏等。
后续,希望可以将nodejs消息处理做成一个通用组件,安装消息中心后,任何系统中可以很方便调用。
最后来一张sketch的设计稿
相关文章推荐
- LeetCode-24.Swap Nodes in Pairs
- 24. Swap Nodes in Pairs
- nodejs的安装及从测试
- Sublime Es6教程2-基本语法
- Sublime Es6教程1-环境搭建
- Nodejs之request 和 response 对象的具体介绍
- LeetCode 222. Count Complete Tree Nodes(完全二叉树节点数统计)
- 理解inode
- Nodejs之文件系统的使用
- Node 重启服务器的 几种常用方法
- 程序员的复仇:11行代码如何让Node.js社区鸡飞狗跳
- 在NodeJS中玩转Protocol Buffer
- leetcode:count the number of nodes
- Node.js中的etag包知识学习之express的配置etag
- 117. Populating Next Right Pointers in Each Node II
- 116. Populating Next Right Pointers in Each Node
- nodejs npm常用命令
- Node.js 应用跑得更快 10 个技巧
- (OK) CORE nodes access Internet—虚拟节点访问互联网—commands
- Node.js 应用跑得更快 10 个技巧