提交 83bea10b 编写于 作者: Y yinpengxiao

追加注释

上级 8e0e211f
/*
* @Author: your name
* @Date: 2021-08-30 10:58:19
* @LastEditTime: 2021-09-03 16:15:41
* @LastEditTime: 2021-09-03 16:54:53
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \koa2-test-api\app.js
......@@ -16,7 +16,7 @@ const logger = require('koa-logger')
require('module-alias/register');
const InitManager = require('@models/core/init');
const catchError = require('@models/middleWares/exception');
//全局错误捕获
app.use(catchError)
// error handler
onerror(app)
......@@ -26,20 +26,21 @@ app.use(bodyparser({
}))
app.use(json())
app.use(logger())
//静态资源
app.use(require('koa-static')(__dirname + '/public'))
//静态文件
app.use(views(__dirname + '/views', {
extension: 'ejs'
}))
// logger
// logger--日志
app.use(async (ctx, next) => {
const start = new Date()
await next()
const ms = new Date() - start
console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
})
//路由全局入口init
InitManager.initCore(app);
app.on('error', (err, ctx) => {
console.error('server error', err, ctx)
......
/*
* @Author: 尹鹏孝
* @Date: 2021-09-03 09:15:37
* @LastEditTime: 2021-09-03 10:36:24
* @LastEditTime: 2021-09-03 16:45:46
* @LastEditors: Please set LastEditors
* @Description: redis缓存
* @FilePath: \koa2-test-api\src\cache\_redis.js
......@@ -37,7 +37,11 @@ function set(key, val, timeout = 60 * 60) {
redisClient.set(key, Buffer.from(val, 'utf-8'));
redisClient.expire(key, timeout);
}
/**
*
* @param {string} key redis键名
* @returns
*/
function get(key) {
return new Promise((resolve, reject) => {
redisClient.get(key, (err, val) => {
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 13:17:20
* @LastEditTime: 2021-09-03 15:15:06
* @LastEditTime: 2021-09-03 16:47:14
* @LastEditors: Please set LastEditors
* @Description: 配置文件
* @FilePath: \koa2-test-api\src\config\config.js
*/
module.exports = {
environment: 'dev',
//mysql数据库配置
database: {
dbName: 'work_week_report',
host: 'localhost',
......@@ -23,10 +23,12 @@ module.exports = {
acquire: 60000,
}
},
//jwt加密和超时
security: {
secretKey: 'YpxXyy@#X[0-9a-Z]()',
expiresIn: 60 * 60
},
//redis数据连接
redis: {
port: 6379,
host: '127.0.0.1',
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 13:46:30
* @LastEditTime: 2021-09-03 09:04:39
* @LastEditTime: 2021-09-03 16:48:54
* @LastEditors: Please set LastEditors
* @Description: 授权中间件
* @FilePath: \koa2-test-api\src\middleWares\auth.js
*/
const jwt = require('jsonwebtoken');
/**
* 权限验证类
*/
class Auth {
constructor() {
}
constructor() {};
/**
* token验证
* @param {string} token 用户token
* @returns
*/
verToken(token) {
/**
* 变成promise操作
*/
return new Promise((resolve, reject) => {
var userInfo = jwt.verify(token.split(' ')[1], global.config.security.secretKey);
console.log('ver获取用户信息:', userInfo);
......@@ -22,6 +29,9 @@ class Auth {
console.log('ver-fail:', err);
})
}
/**
* 当前用户信息验证函数m
*/
get m() {
return async (ctx, next) => {
const userToken = await this.verToken(ctx.request.header.authorization);
......
/*
* @Author:尹鹏孝
* @Date: 2021-08-31 13:28:48
* @LastEditTime: 2021-09-03 08:14:57
* @LastEditTime: 2021-09-03 16:49:27
* @LastEditors: Please set LastEditors
* @Description: 捕获异常生成返回的接口
* @FilePath: \koa2-test-api\src\middlewares\exception.js
......@@ -11,7 +11,6 @@ const catchError = async (ctx, next) => {
await next();
} catch (error) {
if (error.errorCode) {
ctx.body = {
msg: error.msg,
errorCode: error.errorCode,
......@@ -19,7 +18,7 @@ const catchError = async (ctx, next) => {
}
} else {
//对于未知的异常,采用特别处理
console.log(error.originalError);
console.log('全局捕获:', error.originalError);
if (error.originalError == 'JsonWebTokenError: invalid token') {
error.errorCode = 401;
ctx.body = {
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 14:12:44
* @LastEditTime: 2021-08-31 14:12:45
* @LastEditTime: 2021-09-03 16:50:24
* @LastEditors: Please set LastEditors
* @Description: sequelize数据类型
* @FilePath: \koa2-test-api\src\model\type\index.js
......@@ -11,7 +11,7 @@ const {
Sequelize
} = require("sequelize"); // 导入内置数据类型
module.exports = {
STRING: DataTypes.STRING,
STRING: DataTypes.STRING, //STRING
TEXT: DataTypes.TEXT, // TEXT
BOOLEAN: DataTypes.BOOLEAN,
INTEGER: DataTypes.INTEGER, // INTEGER
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-30 10:58:19
* @LastEditTime: 2021-09-03 16:36:32
* @LastEditTime: 2021-09-03 16:50:51
* @LastEditors: Please set LastEditors
* @Description: 用户接口
* @FilePath: \koa2-test-api\src\routes\api\users.js
......@@ -26,15 +26,11 @@ const {
} = require('../../utils/crypto.js');
router.prefix('/api/users')
router.post('/login', async (ctx, next) => {
const {
user_name,
password
} = ctx.request.body;
const result = await login({
user_name,
password: enCrypto(password)
......@@ -46,10 +42,8 @@ router.post('/login', async (ctx, next) => {
*
**/
let token = generateToken(result.id, result.scope, result.user_name)
return ctx.body = new global.errs.Success(token);
} else {
return ctx.body = new global.errs.NotFound(result.msg);
}
......@@ -92,8 +86,6 @@ router.post('/setting', new auth().m, async (ctx, next) => {
user_name,
password: enCrypto(password)
});
console.log('当前用户', newUser);
if (newUser.errorCode == 200) {
return ctx.body = new global.errs.Success(newUser);
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 15:01:10
* @LastEditTime: 2021-09-03 16:06:53
* @LastEditTime: 2021-09-03 16:53:06
* @LastEditors: Please set LastEditors
* @Description: 查询用户
* @FilePath: \koa2-test-api\src\service\user.js
......@@ -13,7 +13,11 @@ const {
const {
User,
} = require('../model/User.js');
/**
*
* @param {Object} param0 user_name:用户名,password:密码
* @returns
*/
async function findUser({
user_name,
password
......@@ -50,10 +54,12 @@ async function findUser({
} else {
return result;
}
}
/**
* 创建用户
* @param {object} param0 user_name用户名,password:密码,scope:区域
* @returns
*/
async function createUser({
user_name,
password,
......
/*
* @Author: 尹鹏孝
* @Date: 2021-09-03 15:02:26
* @LastEditTime: 2021-09-03 15:43:03
* @LastEditTime: 2021-09-03 16:53:33
* @LastEditors: Please set LastEditors
* @Description: 密码加密
* @FilePath: \koa2-test-api\src\utils\cropto.js
......@@ -10,12 +10,20 @@
const CryptoJS = require('crypto-js');
const config = require("../config/config.js")
console.log(config);
/**
* CryptoJS的MD5加密
* @param {string} key MD5加密
* @returns
*/
function enCrypto(key) {
const result = CryptoJS.MD5(key + config.cryptoSecretKey).toString();
return result;
}
/**
* CryptoJS的MD5解密
* @param {string} cipherText 加密后的值
* @returns
*/
function deCrypto(cipherText) {
var bytes = CryptoJS.MD5.decrypt(cipherText, config.cryptoSecretKey);
var originalText = bytes.toString(CryptoJS.enc.Utf8);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册