【NodeJs】基于nodejs加koa2搭建一个的后端服务框架并实现一个简单的token生成及校验功能

背景

最近在学习nodejs以及相关框架koa。后来发现学习时是学会了,但是没过多久再想使用时又忘了,于是决定通过一个小demo的形式将所学及所用的知识记录一下,便于日后回顾和使用。

案例介绍

本文将通过一个简单的小案例来搭建一个基于nodejs+koa的后端服务。主要涉及到的功能点有:

  • token生成及校验
  • token校验中间件
  • 不同模块路由拆分及组合
  • 用户登录及信息查询API
  • db相关操作类封装
  • 常用工具类封装

用到的知识点及第三方库

  • jsonwebtoken: 用于生成及校验token
  • koa: 服务端框架
  • koa-router:处理路由
  • koa-static:处理静态资源
  • koa-bodyparser:解析post请求参数
  • mssql:连接SqlServer数据库
  • nodeman:自动重启服务

具体实现思路

配置公共类库
  • 首先在utils目录下新建一个config.js用于添加一些通用的配置信息,在本文中我们先添加两个属性:PRIVATE_KEY和EXPIRED用于保存生成token时的秘钥和过期时间
// utils/config.js
module.exports = {
   
	"PRIVATE_KEY":"TOKEN-DEMO-SECRET",
	"EXPIRED": 60*60*24
}
  • 在utils目录下新建一个HttpCode.js文件,用于封装一些自定义的常用的http错误码和错误信息(非必须,看个人喜好和业务需要)
// utils/HttpCode.js
module.exports = {
   
  Success: {
   
    success_ok: 2000,
    success_ok_msg: '请求成功',
    success_created: 2001,
    success_created_msg: '请求已创建',
    success_accepted: 2002,
    success_accepted_msg: '请求已受理'
  },
  Redirect: {
   
    redirect_moved_permanently: 3001,
    redirect_moved_permanently_msg: '请求资源已被永久移动到新位置',
    redirect_moved_temporarily: 3002,
    redirect_moved_temporarily_msg: '请求资源临时从其它url相应请求',
    redirect_not_modified: 3004,
    redirect_not_modified_msg: '资源未更改,直接从协商缓存中获取'
  },
  RequestError: {
   
    request_error_bad_request: 4000,
    request_error_bad_request_msg: '无效的请求',
    request_error_unauthorized: 4001,
    request_error_unauthorized_msg: '请求未授权,检查请求头部是否包含token信息',
    request_error_forbidden: 4003,
    request_error_forbidden_msg: '请求被拒绝,token无效或已过期',
    request_error_not_found: 4004,
    request_error_not_found_msg: '请求资源在服务器上不存在',
    request_error_method_not_allowed: 4005,
    request_error_method_not_allowed_msg: '请求方式不被允许'
  },
  ServerError: {
   
    server_error_internal_error: 5000,
    server_error_internal_error_msg: '服务器内部错误',
    server_error_not_imp: 5001,
    server_error_not_imp_msg: '服务器不支持当前请求'
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值