vesh
Version:
码农nodejs版本VESH框架,使用函数责任链模式 实现了 默认文件跳转,自定义错误页,空文件处理,URL解析,Querystring与Form参数解析,PostFiles解析,MVC自动映射,SQL自动服务化,可继承页面,静态文件,json,tjson,jsonp,tjsonp,string,void,xjson,xjosnp等等6种JSON格式,http与https等等操作
28 lines • 1.17 kB
JavaScript
import V from 'gcl/com/coooders/common/tool';
import N from 'gcl/com/coooders/db/ni';
import I from 'gcl/com/coooders/io/tool';
import { AModuler } from '../../V/Control/app';
import { AFilter } from '../../V/Control/core-modulers';
/**
* LoginModuler:LoginModuler处理未登录时请求非过滤的动态页面,则弹回登录页
*/
export const LoginModuler = class extends AModuler {
constructor(loginurl, igoreg = '.*', valid = 'html') {
super("LoginModuler");
const __ = {};
valid.split(';').filter(v => V.isValid(v)).forEach(k => __[k] = true);
pri(this, { loginurl, igoreg: new RegExp(igoreg, 'i'), valid: __ });
if (!loginurl) throw new Error('必须定义默认登录页面!');
}
async onrequest(req, rep, session) {
const { _, __ } = pri(this);
const extend = session.url.pathname.split('.').slice(1).join('.') || '';
if (__.valid[extend] && !__.igoreg.test(session.url.pathname) && !session.User.Login) {
session.redirect(__.loginurl);
return true;
} else
return false;
}
};
export default { LoginModuler };
const pri = V.pris();