首先在使用express-generator安装expess的脚手架,再使用express-e生成express的框架, 其中-e: 代表使用 ejs 模板,-e前面也可以写 自己定义的项目的名字,不写默认为空。
,然后根据rmvc模式进行搭建架构,建立目录,
其中rmvc。
r,roouter,负责进行路由转发
m,models,负责获取数据,或者经数据操作
v,view,负责模板的样式
c,constrillers,负责事件的逻辑处理
middlewares,中间层,负责进行 验证的用户的权限
keys,负责生成公钥和私钥
public,静态资源存放
utils,连接数据库
先进行数据库的连接在utiles下的db.js进行配置数据库的连接,这里使用mongoose插件对mongo数据库进行操作,
连接上数据库后在model数据处理模块中定义传入数据的格式并进行数据的差删改查,(调用mogoose的save,find,remove等方法)
数据库配置完成后在router里面的users.js里面配置router,当路由到/signup的时候,就调用controllers里面的use.js里面的signup方法,
1.singup(注册)函数
首先获取在前端注册时传入的用户名,调用select在数据库中查询,查到了就return就不往下进行了
如果没有查到,
先引入bysbcrypt插件进行对密码的加密
对密码就行加密并替换
2.sigin(登录)函数
router里面的users.js里面配置router,当路由到/signin的时候,就调用controllers里面的use.js里面的signin方法,
在接受到数据之后,给前台的用户返回一个标识的token
先定义一个随机生成token的函数生成token(这里使用非对称加密生成公钥和私钥进行匹配)
数首先从数据库查用户的用户名,查到了就调用comparePassword进行密码的校验,校验成功在返回req信息的头信息中添加一个随机的token
3.issigin(判断用户是否处于登录状态)函数(在用户登录之后,如果不进行登出操作就一直维持在登录状态,避免一刷新就退出)
当路由到/signup的时候,就调用controllers里面的use.js里面的oAuthMiddleWare中间层
router.get('/issignin', oAuthMiddleWare)
在中间层主要进行验证token,使用公钥对私钥进行匹配
匹配成功就返回issignin = true
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
11
1
111
1
14
4