增加会话管理;增加模板渲染
parent
76d205a1c4
commit
3902c59b01
90
index.js
90
index.js
|
@ -1,59 +1,56 @@
|
||||||
/**
|
/**
|
||||||
* 控制器基类
|
* 控制器基类
|
||||||
* @authors yutent (yutent@doui.cc)
|
* @author yutent<yutent.io@gmail.com>
|
||||||
* @date 2016-01-02 23:19:16
|
* @date 2020/09/24 15:45:17
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import jwt from '@gm5/jwt'
|
|
||||||
|
|
||||||
export default class Controller {
|
export default class Controller {
|
||||||
constructor({ ctx, req, res }) {
|
// 初始化方法, 取代原先的构造方法
|
||||||
|
__f_i_v_e__(ctx, req, res) {
|
||||||
this.context = ctx
|
this.context = ctx
|
||||||
this.name = req.app
|
this.name = req.app
|
||||||
this.request = req
|
this.request = req
|
||||||
this.response = res
|
this.response = res
|
||||||
|
|
||||||
jwt.expires = ctx.get('session').ttl
|
this.jwt = Object.create(null)
|
||||||
jwt.secret = ctx.get('jwt')
|
this.jwt.sign = ctx.$$jwt.sign
|
||||||
|
|
||||||
this.jwt = { sign: jwt.sign }
|
this.smarty = ctx.$$smarty
|
||||||
|
|
||||||
// smarty.config('path', this.ctx.get('VIEWS'))
|
|
||||||
// smarty.config('ext', this.ctx.get('temp_ext'))
|
|
||||||
// smarty.config('cache', !!this.ctx.get('temp_cache'))
|
|
||||||
|
|
||||||
// this.session = this.ctx.ins('session')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//定义一个变量,类似于smarty,把该
|
// 定义一个模板变量
|
||||||
// assign(key, val) {
|
assign(key, val) {
|
||||||
// key += ''
|
if (val === undefined || val === null) {
|
||||||
// if (!key) {
|
val = ''
|
||||||
// return
|
}
|
||||||
// }
|
key += ''
|
||||||
|
|
||||||
// if (val === undefined || val === null) {
|
if (key && this.smarty) {
|
||||||
// val = ''
|
this.smarty.assign(key, val)
|
||||||
// }
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// smarty.assign(key, val)
|
// 模板渲染, 参数是模板名, 可不带后缀, 默认是
|
||||||
// }
|
render(file, noParse = false) {
|
||||||
|
if (this.smarty) {
|
||||||
//模板渲染, 参数是模板名, 可不带后缀, 默认是 .tpl
|
this.smarty
|
||||||
// render(file, noParse = false) {
|
.render(file, noParse)
|
||||||
// smarty
|
.then(html => {
|
||||||
// .render(file, noParse)
|
this.response.render(html)
|
||||||
// .then(html => {
|
})
|
||||||
// this.response.render(html)
|
.catch(err => {
|
||||||
// })
|
this.response.error(err)
|
||||||
// .catch(err => {
|
})
|
||||||
// this.response.error(err)
|
}
|
||||||
// })
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
checkAuth() {
|
checkAuth() {
|
||||||
this.jwt.result = jwt.verify(this.request.header('authorized'))
|
var authorization = this.request.header('authorization') || ''
|
||||||
|
this.jwt.result = this.context.$$jwt.verify(authorization)
|
||||||
|
// token校验失败, 自动清除会话
|
||||||
|
if (this.jwt.result === false) {
|
||||||
|
this.context.$$session.clear()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// cookie读写
|
// cookie读写
|
||||||
|
@ -75,7 +72,18 @@ export default class Controller {
|
||||||
this.response.cookie(key, val, opt)
|
this.response.cookie(key, val, opt)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RESFULL-API规范的纯API返回
|
// 会话读写
|
||||||
|
session(key, val) {
|
||||||
|
if (arguments.length < 2) {
|
||||||
|
// 这里返回的是Promise对象
|
||||||
|
return this.context.$$session.get(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
key += ''
|
||||||
|
this.context.$$session.set(key, val)
|
||||||
|
}
|
||||||
|
|
||||||
|
// resfull-api规范的纯API返回
|
||||||
send(status = 200, msg = 'success', data = {}) {
|
send(status = 200, msg = 'success', data = {}) {
|
||||||
if (typeof msg === 'object') {
|
if (typeof msg === 'object') {
|
||||||
data = msg
|
data = msg
|
||||||
|
@ -87,7 +95,7 @@ export default class Controller {
|
||||||
//针对框架定制的debug信息输出
|
//针对框架定制的debug信息输出
|
||||||
xdebug(err) {
|
xdebug(err) {
|
||||||
var msg = err
|
var msg = err
|
||||||
if (this.ctx.get('debug')) {
|
if (this.context.get('debug')) {
|
||||||
msg = err.message || err
|
msg = err.message || err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,6 @@
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "控制器基类。",
|
"description": "控制器基类。",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
|
||||||
"@gm5/jwt": "^1.0.0"
|
|
||||||
},
|
|
||||||
"author": "yutent",
|
"author": "yutent",
|
||||||
"keywords": ["fivejs", "controller", "http"],
|
"keywords": ["fivejs", "controller", "http"],
|
||||||
"repository": "https://github.com/bytedo/gmf.controller.git",
|
"repository": "https://github.com/bytedo/gmf.controller.git",
|
||||||
|
|
Loading…
Reference in New Issue