【架构师(第五十一篇)】服务端开发之技术方案设计-创新互联

接口设计

server端当做一个黑盒,它将如何与前端通讯?

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比秭归网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式秭归网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖秭归地区。费用合理售后完善,10多年实体公司更值得信赖。功能范围
  • B 端,用户注册,作品管理,模板管理
  • 编辑器,单个作品的内容获取,修改,预览和发布
功能拆分
  • 用户信息相关
  • 作品管理
  • 模板管理
  • 编辑器
  • 工具类
用户信息
  • 获取手机短信验证码
  • 登录,注册
  • 获取用户信息
  • 修改用户信息
作品管理
  • 创建空白作品
  • 复制作品(一个模板也是一个作品)
  • 删除作品
  • 恢复作品
  • 转赠作品
  • 我的作品列表(搜索,分页)
  • 我的回收站列表(搜索,分页)
模板管理
  • 首页推荐模板列表(搜索,分页) ----不需要登录校验
  • 获取单个模板信息 —不需要登录校验
  • 我的模板列表(搜索,分页)
编辑器

设计时分开,但编写代码的时候会和作品管理写在一起,因为都是作品相关的。

  • 查询单个作品信息
  • 保存作品
  • 预览作品
  • 发布作品
  • 发布作品为一个模板
渠道
  • 创建渠道
  • 删除渠道
  • 修改渠道名称
工具类
  • 上传图片
统一的输出格式
{errno:0,// 错误码,无错误则返回 0data:{},// 数据内容message:'xxx' // 消息内容
}
数据库设计 需要存储的数据
  • 用户
  • 项目/模板(包含项目内容,组件信息)
  • 渠道
数据之间的关系数据表设计

注意:使用sequelizemongoose的时候,会自动创建idcreatedAtupdatedAt,无需自己手动创建 。

用户作品/模板渠道作品内容
  • 未发布
  • 发布
{// 页面的组件列表components: [Object],// 页面的属性 ,如页面背景图片props: Object,// 配置信息, 如微信分享配置setting: Object
}
书写代码
  • sequelize Model以及关联关系
  • mongoose SchemeModel
整体架构设计基础功能设计 短信验证过程 初次获取验证码
  • 前端发送请求request- 输入手机号,请求短信验证码
  • 服务端server- 生成 4 位随机数,缓存2 min
  • 服务端响应res* 发短信验证码* 返回发送短信成功给前端{ errno:0 }
再次获取验证码
  • 前端发送请求request- 输入手机号,请求短信验证码
  • 服务端server- 检查是否有缓存,没有就生成一个验证码,缓存2 min
  • 服务端响应res* 有缓存,返回错误,不可以频繁获取* 没有缓存,发送短信,并返回成功信息给前端{ errno:0 }
登录验证
  • 前端发送请求request- 输入手机号,短信验证码,请求登录验证

  • 服务端server- 与缓存中的信息进行匹配

  • 服务端响应res* 匹配成功,登录成功,返回 token* 匹配失败(验证码错误或过期),登录失败### 其他细节问题

  • 缓存,禁止频繁发送* 短信服务的提示和报警* 短信发送失败,不会进行缓存,用户可以立刻再次请求验证码* 如果server缓存失败,允许用户立刻重复获取验证码* 短信服务挂掉,报警用户信息接口


  • 获取手机短信验证码
  • 登录(注册)
  • 获取用户信息
  • 修改用户信息
代码演示

代码不贴了,只记录下文件位置,到时候看的时候代码仓库里找就行。

  • routes/users.js* controller/users/* service/users/* **test/apis/users.js**作品管理接口

  • 创建空白作品
  • 复制作品(通过模板创建)
  • 删除作品
  • 恢复作品
  • 转赠作品
  • 我的作品列表(搜索,分页)
  • 我的回收站列表(搜索,分页)
  • 查询单个作品信息
  • 保存作品
代码演示
  • routes/works.js
  • controller/works/
  • service/works/
  • test/apis/works.js
模板接口
  • 首页推荐模板列表(搜索,分页) - 不需要登录校验
  • 获取单个模板信息 - 不需要登录校验
  • 我的模板列表(搜索,分页)
代码演示
  • routes/templates.js
  • controller/works/findTemplate
  • service/works/templates
  • test/apis/templates.js
发布相关的功能

发布,即获取一个url,能外网访问该作品。

功能范围
  • 发布作品
  • 支持多渠道
  • 发布为模板
细节设计
  • url 不能太长,因为要生成二维码。
  • 作品发布之后,重新编辑,保存,未发布的时候线上不可以生效。
  • 再次发布时,url不能变,渠道号也不能变。
  • 用户访问url时必须带有渠道号,否则无法分渠道统计。
  • 注意数据保密,防爬。
  • 发布时进行内容安全检查。
代码演示
  • routes/works.js
  • controller/works/publishWorks.js
  • service/works.js
  • cache/works/publish.js
  • test/apis/work.js
渠道接口 代码演示
  • routes/channel.js
  • controller/channel/
  • service/channel.js
  • cache/works/publish.js
  • test/apis/channel.js

PS: 从本节开始就是大量的业务代码的书写,就不记录文章里了,需要的时候直接去看对应的代码就就行了。

最后

最近还整理一份JavaScript与ES的笔记,一共25个重要的知识点,对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识,提升工作效率。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻名称:【架构师(第五十一篇)】服务端开发之技术方案设计-创新互联
文章源于:http://scyanting.com/article/psejs.html