UNPKG

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
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();