Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
澄清寰宇
koa2-test-api
提交
0a67ff34
K
koa2-test-api
项目概览
澄清寰宇
/
koa2-test-api
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
koa2-test-api
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
0a67ff34
编写于
9月 06, 2021
作者:
Y
yinpengxiao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改提交代码
上级
83bea10b
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
82 addition
and
44 deletion
+82
-44
bin/www
bin/www
+1
-1
src/app.js
src/app.js
+2
-2
src/cache/_redis.js
src/cache/_redis.js
+3
-3
src/controller/user.js
src/controller/user.js
+11
-5
src/core/http-exception.js
src/core/http-exception.js
+17
-2
src/middleWares/auth.js
src/middleWares/auth.js
+3
-3
src/routes/api/users.js
src/routes/api/users.js
+12
-7
src/service/user.js
src/service/user.js
+31
-19
src/utils/crypto.js
src/utils/crypto.js
+2
-2
未找到文件。
bin/www
浏览文件 @
0a67ff34
...
...
@@ -27,7 +27,7 @@ var server = http.createServer(app.callback());
server
.
listen
(
port
);
server
.
on
(
'
error
'
,
onError
);
console
.
log
(
'
端口:
'
,
process
.
env
.
PORT
||
3000
);
//
console.log('端口:', process.env.PORT || 3000);
server
.
on
(
'
listening
'
,
onListening
);
/**
...
...
src/app.js
浏览文件 @
0a67ff34
/*
* @Author: your name
* @Date: 2021-08-30 10:58:19
* @LastEditTime: 2021-09-0
3 16:54:53
* @LastEditTime: 2021-09-0
6 16:24:05
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \koa2-test-api\app.js
...
...
@@ -17,7 +17,7 @@ require('module-alias/register');
const
InitManager
=
require
(
'
@models/core/init
'
);
const
catchError
=
require
(
'
@models/middleWares/exception
'
);
//全局错误捕获
app
.
use
(
catchError
)
//
app.use(catchError)
// error handler
onerror
(
app
)
// middlewares
...
...
src/cache/_redis.js
浏览文件 @
0a67ff34
/*
* @Author: 尹鹏孝
* @Date: 2021-09-03 09:15:37
* @LastEditTime: 2021-09-0
3 16:45:46
* @LastEditTime: 2021-09-0
6 15:13:47
* @LastEditors: Please set LastEditors
* @Description: redis缓存
* @FilePath: \koa2-test-api\src\cache\_redis.js
...
...
@@ -33,7 +33,7 @@ function set(key, val, timeout = 60 * 60) {
if
(
typeof
val
===
'
object
'
)
{
val
=
JSON
.
stringify
(
val
);
}
console
.
log
(
'
输出要设置的内容:
'
,
Buffer
.
from
(
val
,
'
utf-8
'
));
//
console.log('输出要设置的内容:', Buffer.from(val, 'utf-8'));
redisClient
.
set
(
key
,
Buffer
.
from
(
val
,
'
utf-8
'
));
redisClient
.
expire
(
key
,
timeout
);
}
...
...
@@ -54,7 +54,7 @@ function get(key) {
return
}
try
{
console
.
log
(
'
输出redis查询的内容:
'
,
JSON
.
parse
(
val
));
//
console.log('输出redis查询的内容:', JSON.parse(val));
resolve
(
JSON
.
parse
(
val
))
}
catch
(
error
)
{
resolve
(
val
);
...
...
src/controller/user.js
浏览文件 @
0a67ff34
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 15:11:10
* @LastEditTime: 2021-09-0
3 16:11:35
* @LastEditTime: 2021-09-0
6 16:47:17
* @LastEditors: Please set LastEditors
* @Description: 用户信息相关接口
* @FilePath: \koa2-test-api\src\controller\user.js
...
...
@@ -65,10 +65,11 @@ async function registry({
console
.
log
(
'
用户不存在,创建成功
'
,
result
);
if
(
result
.
code
==
200
)
{
if
(
result
)
{
result
.
code
=
200
;
return
result
;
}
else
{
return
result
;
return
{}
;
}
}
...
...
@@ -77,11 +78,16 @@ async function setting({
password
,
newPassword
})
{
console
.
log
(
'
controller的数据::
'
,
{
user_name
,
password
});
let
result
=
await
updateUser
({
user_name
,
password
,
newPassword
password
});
console
.
log
(
'
更新后结果:
'
,
result
.
dataValues
);
return
result
;
//service
}
...
...
src/core/http-exception.js
浏览文件 @
0a67ff34
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 13:20:40
* @LastEditTime: 2021-09-0
3 11:51:52
* @LastEditTime: 2021-09-0
6 16:26:04
* @LastEditors: Please set LastEditors
* @Description: 异常处理
* @FilePath: \koa2-test-api\src\core\http-exception.js
*/
const
{
set
}
=
require
(
'
../cache/_redis.js
'
);
class
HttpException
extends
Error
{
constructor
(
msg
=
'
服务器异常
'
,
errorCode
=
10000
,
code
=
400
)
{
super
()
...
...
@@ -39,6 +42,8 @@ class AuthFailed extends HttpException {
this
.
msg
=
msg
||
'
授权失败
'
;
this
.
errorCode
=
errorCode
||
10002
;
this
.
code
=
401
;
set
(
user_name
,
''
);
}
}
...
...
@@ -69,6 +74,15 @@ class Success extends HttpException {
}
}
class
settingUserFailed
extends
HttpException
{
constructor
(
msg
,
errorCode
)
{
super
();
this
.
msg
=
msg
||
'
两次密码一致,请重新设置密码
'
;
this
.
errorCode
=
errorCode
||
10005
;
this
.
code
=
400
;
}
}
module
.
exports
=
{
HttpException
,
ParameterException
,
...
...
@@ -76,5 +90,6 @@ module.exports = {
NotFound
,
AuthFailed
,
Forbidden
,
CreateUserFailed
CreateUserFailed
,
settingUserFailed
}
\ No newline at end of file
src/middleWares/auth.js
浏览文件 @
0a67ff34
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 13:46:30
* @LastEditTime: 2021-09-0
3 16:48:54
* @LastEditTime: 2021-09-0
6 16:57:56
* @LastEditors: Please set LastEditors
* @Description: 授权中间件
* @FilePath: \koa2-test-api\src\middleWares\auth.js
...
...
@@ -23,7 +23,7 @@ class Auth {
*/
return
new
Promise
((
resolve
,
reject
)
=>
{
var
userInfo
=
jwt
.
verify
(
token
.
split
(
'
'
)[
1
],
global
.
config
.
security
.
secretKey
);
console
.
log
(
'
ver获取用户信息:
'
,
userInfo
);
//
console.log('ver获取用户信息:', userInfo);
resolve
(
userInfo
);
}).
catch
(
err
=>
{
console
.
log
(
'
ver-fail:
'
,
err
);
...
...
@@ -35,7 +35,7 @@ class Auth {
get
m
()
{
return
async
(
ctx
,
next
)
=>
{
const
userToken
=
await
this
.
verToken
(
ctx
.
request
.
header
.
authorization
);
console
.
log
(
'
通过token获取用户信息:
'
,
userToken
);
let
errMsg
=
'
token不合法
'
;
if
(
!
userToken
||
!
userToken
.
user_name
)
{
throw
new
global
.
errs
.
Forbidden
(
errMsg
);
...
...
src/routes/api/users.js
浏览文件 @
0a67ff34
/*
* @Author: 尹鹏孝
* @Date: 2021-08-30 10:58:19
* @LastEditTime: 2021-09-0
3 16:50:51
* @LastEditTime: 2021-09-0
6 16:57:27
* @LastEditors: Please set LastEditors
* @Description: 用户接口
* @FilePath: \koa2-test-api\src\routes\api\users.js
...
...
@@ -9,7 +9,7 @@
const
{
login
,
registry
,
findUser
setting
}
=
require
(
"
../../controller/user.js
"
);
const
router
=
require
(
'
koa-router
'
)()
const
{
...
...
@@ -31,6 +31,8 @@ router.post('/login', async (ctx, next) => {
user_name
,
password
}
=
ctx
.
request
.
body
;
console
.
log
(
'
输出原始密码:
'
,
password
);
console
.
log
(
'
输出加密后密码
'
,
enCrypto
(
password
));
const
result
=
await
login
({
user_name
,
password
:
enCrypto
(
password
)
...
...
@@ -68,8 +70,7 @@ router.post('/register', async (ctx, next) => {
password
:
enCrypto
(
password
),
scope
});
console
.
log
(
newUser
);
if
(
newUser
.
errorCode
==
200
)
{
if
(
newUser
.
code
==
200
)
{
return
ctx
.
body
=
new
global
.
errs
.
Success
(
newUser
);
}
else
{
return
ctx
.
body
=
new
global
.
errs
.
CreateUserFailed
(
newUser
);
...
...
@@ -82,15 +83,19 @@ router.post('/setting', new auth().m, async (ctx, next) => {
password
}
=
ctx
.
request
.
body
;
set
(
user_name
,
''
);
let
newUser
=
await
findUser
({
console
.
log
(
'
当前用户:
'
,
{
user_name
,
password
:
enCrypto
(
password
)
});
let
newUser
=
await
setting
({
user_name
,
password
:
enCrypto
(
password
)
});
console
.
log
(
'
当前用户
'
,
newUser
);
if
(
newUser
.
errorCode
==
200
)
{
if
(
newUser
.
id
)
{
return
ctx
.
body
=
new
global
.
errs
.
Success
(
newUser
);
}
else
{
return
ctx
.
body
=
new
global
.
errs
.
CreateUserFailed
(
newUser
);
return
ctx
.
body
=
new
global
.
errs
.
settingUserFailed
(
settingUserFailed
);
}
});
...
...
src/service/user.js
浏览文件 @
0a67ff34
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 15:01:10
* @LastEditTime: 2021-09-0
3 16:53:06
* @LastEditTime: 2021-09-0
6 16:47:41
* @LastEditors: Please set LastEditors
* @Description: 查询用户
* @FilePath: \koa2-test-api\src\service\user.js
...
...
@@ -36,12 +36,16 @@ async function findUser({
user_name
:
user_name
||
''
,
}
}
console
.
log
();
//请求先去redis里面查询,如果有而且没过期就返回,不用再去数据库查询,如果过期就去数据库查询,然后再存储到redis中
let
result
=
null
;
result
=
await
get
(
user_name
);
console
.
log
(
'
在redis里面查询当前登录用户:
'
,
result
);
if
(
result
==
null
)
{
console
.
log
(
'
在redis里面查询当前登录用户:
'
,
result
==
null
);
console
.
log
(
'
输出user:
'
,
user
);
if
(
result
==
null
||
result
==
''
)
{
result
=
await
User
.
findOne
(
user
);
console
.
log
(
'
输出用户:
'
,
result
);
if
(
result
)
{
result
=
result
.
dataValues
;
//用户第一次登陆首查询后首先存储在redis中
...
...
@@ -73,7 +77,7 @@ async function createUser({
scope
});
console
.
log
(
'
创建用户是否成功
'
,
user
);
return
user
return
user
.
dataValues
;
}
catch
(
error
)
{
console
.
log
(
'
创建用户失败
'
,
error
.
errors
[
0
].
ValidationErrorItem
);
return
{
...
...
@@ -89,26 +93,34 @@ async function createUser({
*/
async
function
updateUser
({
user_name
,
password
,
newPassword
password
})
{
let
updateData
=
{};
if
(
newPassword
)
{
updateData
.
password
=
newPassword
;
}
//拼接查询条件
let
whereData
=
{
user_name
:
user_name
let
user
=
{
attributes
:
[
'
user_name
'
,
'
id
'
,
'
scope
'
,
'
createdAt
'
,
'
updatedAt
'
]
};
if
(
password
)
{
whereData
.
password
=
password
;
user
.
where
=
{
user_name
}
let
myUer
=
await
User
.
findOne
(
user
);
if
(
myUer
.
password
!==
password
)
{
myUer
.
password
=
password
;
let
result
=
await
myUer
.
save
();
console
.
log
(
'
输出结果:
'
,
result
);
set
(
result
.
user_name
,
JSON
.
stringify
(
result
.
dataValues
));
return
result
.
dataValues
}
else
{
return
{
id
:
null
,
msg
:
'
密码和原始密码一致
'
}
}
const
updateUser
=
await
User
.
update
(
updateData
,
{
where
:
whereData
});
console
.
log
(
'
输出更新:
'
,
updateUser
);
}
module
.
exports
=
{
findUser
,
...
...
src/utils/crypto.js
浏览文件 @
0a67ff34
/*
* @Author: 尹鹏孝
* @Date: 2021-09-03 15:02:26
* @LastEditTime: 2021-09-0
3 16:53:33
* @LastEditTime: 2021-09-0
6 15:14:39
* @LastEditors: Please set LastEditors
* @Description: 密码加密
* @FilePath: \koa2-test-api\src\utils\cropto.js
...
...
@@ -9,7 +9,7 @@
const
CryptoJS
=
require
(
'
crypto-js
'
);
const
config
=
require
(
"
../config/config.js
"
)
console
.
log
(
config
);
//
console.log(config);
/**
* CryptoJS的MD5加密
* @param {string} key MD5加密
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录