搭建自己的Node.js 服务器 (二)

搭建自己的Node.js 服务器 (二)

之前完成了基础的node服务器功能,也能响应HTTP请求,接下来我们要做的事情,就是进一步完善服务器,添加中间件,完成自己需要的功能。首先罗列一下需要的功能块,便于之后的书写

  1. 登陆(登出)
  2. token
  3. HTTP拦截
  4. 路由
  5. I/O
  6. 待定中间件(自行添加)

先说一下这个路由,这个路由指的是express里自带的路由模块,能够方便的处理HTTP请求。
另外由于node使用回调解决异步编程问题,导致 “回调地狱”,因此将使用 async / await (或者Promise)解决异步问题。
先查看一下node版本,即node -v
搭建自己的Node.js 服务器 (二)
查看node特性,可以看到,node 8 LTS之后就支持了async / await ,不需要使用babel进行shim。所以也不需要引入babel模块了!
接下来我们先解决token问题
在components中新建token文件夹,并在其下新建index.js,引入jsonwebtoken
搭建自己的Node.js 服务器 (二)
(如果使用证书,需要改写加密和解密函数,安全性考虑建议如此,此服务器仅为测试,故而简单一点)

这里我们思考一个问题,既然是token,那么自从系统登录到之后每一次的请求,直到退出,都会调用token模块(token验证),那么这个模块必然是第一步执行,并且由于登陆之后需要生成token,因此,只有等此模块执行完毕,我们才能进行下一步操作。因此我们需要改写一下
搭建自己的Node.js 服务器 (二)
(为了明显看出差异,在这边放置了两个定时器同时把过期时间设置成了10秒,实际中可以去掉定时器,时间改为需要的时间)
书写完token模块之后,我们在intercept,login这两个中间件中调用token模块
搭建自己的Node.js 服务器 (二)
关于响应头设置,默认设置为application/json,然后根据实际需求更改为其他(之后调用中间件时进行设置即可)
然后由于需要向前台返回响应体,即response,我们可以写一个公共函数,包含code,status,msg,data,success等必要信息的响应函数,方便调用
搭建自己的Node.js 服务器 (二)
在登陆模块中
搭建自己的Node.js 服务器 (二)
只需要调用生成token模块,并进行校验即可

好了,token模块基本完成,我们下一步的目标是 解决并发

禁止私自转载,如需转载,请联系