基于uni-app的社交app【uni+nodejs+mongo】

iTalk是一个集QQ和VX功能于一身的社交App,采用Uni-app、Node.js和Mongo数据库构建。项目包括用户、好友、私聊、群聊等功能,并提供了详细的API文档。开发者可以利用uni-app的跨平台特性,结合WebSocket实现即时通讯,通过Express简化后端开发。
摘要由CSDN通过智能技术生成

iTalk开发文档

博客更新日期:2021-06-04
项目状态:新增大厅聊天室,新增图片接口千张。

基本架构:UniAPP+node+Mongo.
Github地址: https://github.com/bai-23/italk-app
项目预览地址:点击这里(建议移动端食用)
配套接口文档,喜欢的小伙伴帮忙点个star~

快速预览

项目名称:iTalk-社交app

开发人员:熙子黒

更新日期:2021-05-24

开源协议:MIT

项目介绍

  • QQ、VX的结合
  • 即时通讯技术
  • 全栈架构
  • UI规范化

项目地址:http://italk.aoau.top

更多项目请访问:http://www.aoau.top

技术栈

前端:vue+uni-app+sass

后端:Nodejs(express)+mongoDB

通信:Websocket(socket.io)

Development Tool: HBuilderX+WebStorm

Developing env: windows开发+linux部署

Why uni-app?

1.简洁的跨平台开发框架,一次开发多平台上线(Android、ios、小程序)。

2.开发前置条件低,只需掌握vue即可快速上手。

Why websocket?

1.不同于http协议,详情查看官网。

2.服务端与客户端双向数据绑定。

3.封装的socket.io库简洁API,方便快速上手。

4.此项目为本人学习websocket项目,以准备后期开发物联网项目打基础。

Why express?

1.express是基于nodejs标准库http封装的web后端框架,方便前端人员快速开发,学习成本较低。

Project

项目目录

前端

--	commons/					// 配置文件-	db.js				// 连接数据库配置--	components/					// 数据模型--	pages/				// 中间件-	err.js				// 错误处理中间件-	static/					// 后端路由-	index.js
├-	App.vue					// -	main.js						//-	pages.json				// 入口-	manifest.json
├-	project.config.json			 // 版本控制-	uni.scss		 // 版本控制-	README.md				// readme-	

后端

--	config/					// 配置文件-	db.js				// 连接数据库配置--	model/					// 数据模型--	middleware/				// 中间件-	err.js				// 错误处理中间件-	router/					// 后端路由-	index.js
├-	server/					// --	dao/					//--	app.js					// 入口-	package.json			 // 版本控制-	package-lock.json		 // 版本控制-	README.md				// readme-	

插件

版本 备注
cors 2.8.5 跨域处理
express 4.17.1 web框架
mongoose 5.12.10 数据库
require-all 3.0.0 加载目录下所有文件
body-parser 1.19.0 获取前端数据
nodemailer 6.6.0 邮箱插件
bcryptjs 2.4.3 密码加密
jsonwebtoken 8.5.1 token身份验证
multer 1.4.2 文件上传插件

加粗为后端插件

前端路由

路由 参数 类型 备注
/index / 首页
/signin / 登录页
/signup / 注册页
/userhome?id=xxx id Num/Str 用户唯一id
/search / 好友搜索

交互逻辑

标题 逻辑 备注
前后端交互流程 前端发送请求 匹配后端路由 server处理函数 dbserver CRUD db
前后端交互验证 1. 登陆时,客户端发送用户名密码
2. 服务端验证用户名密码是否正确,校验通过就会生成一个有时效的token串,发送给客户端
3. 客户端储存token,一般都会存储在localStorage或者cookie里面
4. 客户端每次请求时都带有token,可以将其放在请求头里,每次请求都携带token
5. 服务端验证token,所有需要校验身份的接口都会被校验token,若token解析后的数据包含用户身份信息,则身份验证通过,返回数据

Schema

用户

字段 类型 备注
_id str id
name str 用户名
email str 邮箱
psw num 密码
sex str 性别
birth str 生日
phone str 电话
explain str 签名
imgurl str 头像地址
time str 注册时间
grade str 用户等级

好友

字段 类型 备注
_id str id
userID str 用户id
friendID str 好友id
time date 生成时间
state num 好友状态(0 已为好友,1 申请中,2 对方未同意 )
lastTime date 最后一条消息时间

私聊消息

字段 类型 备注
_id str id
userID str 发送者id
friendID str 接受者id
message
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值