UNPKG

vesh

Version:

码农nodejs版本VESH框架,使用函数责任链模式 实现了 默认文件跳转,自定义错误页,空文件处理,URL解析,Querystring与Form参数解析,PostFiles解析,MVC自动映射,SQL自动服务化,可继承页面,静态文件,json,tjson,jsonp,tjsonp,string,void,xjson,xjosnp等等6种JSON格式,http与https等等操作

1,448 lines (1,219 loc) 48.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TestPermission = exports.NeedPermission = exports.TestCurreny = exports.NeedCurreny = exports.TestIP = exports.NeedIP = exports.TestZipCode = exports.NeedZipCode = exports.TestQQ = exports.NeedQQ = exports.TestChinese = exports.NeedChinese = exports.TestEmail = exports.NeedEmail = exports.TestUrl = exports.NeedUrl = exports.TestPhone = exports.NeedPhone = exports.TestMobile = exports.NeedMobile = exports.TestCard = exports.NeedCard = exports.TestRequired = exports.NeedRequired = exports.TestPassword = exports.NeedPassword = exports.TestLetter = exports.NeedLetter = exports.TestInt = exports.NeedInt = exports.TestNumber = exports.NeedNumber = exports.TestRegex = exports.NeedRegex = exports.TestRestful = exports.NeedRestful = exports.TestPost = exports.NeedPost = exports.TestGet = exports.NeedGet = exports.TestMethod = exports.NeedMethod = exports.ActionModuler = exports.NiModuler = exports.AppSettingFilter = exports.SessionFilter = exports.FormFilter = exports.AFilter = exports.LoadModuler = exports.AAction = undefined; var _regenerator = require("babel-runtime/regenerator"); var _regenerator2 = _interopRequireDefault(_regenerator); var _typeof2 = require("babel-runtime/helpers/typeof"); var _typeof3 = _interopRequireDefault(_typeof2); var _ownKeys = require("babel-runtime/core-js/reflect/own-keys"); var _ownKeys2 = _interopRequireDefault(_ownKeys); var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of"); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn"); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require("babel-runtime/helpers/inherits"); var _inherits3 = _interopRequireDefault(_inherits2); var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require("babel-runtime/helpers/createClass"); var _createClass3 = _interopRequireDefault(_createClass2); var _tool = require("gcl/com/coooders/common/tool"); var _tool2 = _interopRequireDefault(_tool); var _ni = require("gcl/com/coooders/db/ni"); var _ni2 = _interopRequireDefault(_ni); var _tool3 = require("gcl/com/coooders/io/tool"); var _tool4 = _interopRequireDefault(_tool3); var _path = require("path"); var _fs = require("fs"); var _app = require("./app"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * AAction基类 用于完成Controler操作 */ var AAction = exports.AAction = function () { function AAction() { (0, _classCallCheck3.default)(this, AAction); var _pri = pri(this), _ = _pri._, __ = _pri.__; _.isStatic = true; } (0, _createClass3.default)(AAction, [{ key: "preload", value: function preload(req, rep, session) { return false; } }, { key: "unload", value: function unload(req, rep, session) { return false; } }]); return AAction; }(); var LoadModuler = exports.LoadModuler = function (_AModuler) { (0, _inherits3.default)(LoadModuler, _AModuler); function LoadModuler(base, src) { var debug = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; (0, _classCallCheck3.default)(this, LoadModuler); var _this = (0, _possibleConstructorReturn3.default)(this, (LoadModuler.__proto__ || (0, _getPrototypeOf2.default)(LoadModuler)).call(this, "LoadModuler")); var _pri2 = pri(_this, { base: base ? base.trim("/").trim("\\").replace(/[\\\/]/g, ".") : "", src: src ? "/" + src.replace(/^[\\\/]/g, "") : "", actions: {}, debug: debug, pathregex: /([/\\][^/\\]+)+[/\\]/g }), _ = _pri2._, __ = _pri2.__; return _this; } (0, _createClass3.default)(LoadModuler, [{ key: "onrequest", value: function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(req, rep, session, call) { var _pri3, _, __, query, action, base, ist; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _pri3 = pri(this), _ = _pri3._, __ = _pri3.__; //todo src=>dist的 es7编译 query = (session.url.pathname.match(__.pathregex) || "/")[0]; session.classtype = ("" + __.src + query + "action").toLowerCase(); session.methodname = ("" + __.base + query + session.status).replace(/[\\\/]/g, ".").toLowerCase(); action = __.actions[session.classtype]; if (!(typeof action == "undefined")) { _context.next = 12; break; } base = (0, _path.parse)((0, _path.resolve)((0, _path.normalize)(process.mainModule.filename))).dir; if ("windows".eq(_tool2.default.environment.os || "")) { //windows base = base.replace(/\//g, "\\"); } else { //linux base = base.replace(/\\\\/g, "/"); } _context.next = 10; return _tool2.default.callback(function (call) { return (0, _fs.exists)(base + session.classtype + ".njs", function (ist) { return call(null, ist); }); }); case 10: ist = _context.sent; //console.log(35, base + session.classtype + '.njs', ist); action = !ist ? false : function () { try { var _ret = function () { var classname = require(base + session.classtype + ".njs"); //console.log(56, base + session.classtype + '.njs', classname); var action = classname && classname.Action ? _tool2.default.create2(classname.Action, []) : false; if (action) { var proto = action.__proto__; //遍历所有父类方法 while (proto) { var names = (0, _ownKeys2.default)(proto); names.forEach(function (k) { if (k != k.toLowerCase() && k != "constructor" && k.indexOf("__") < 0 && typeof action[k] == "function") action[k.toLowerCase()] = action[k]; }); proto = proto.__proto__; } } return { v: action }; }(); if ((typeof _ret === "undefined" ? "undefined" : (0, _typeof3.default)(_ret)) === "object") return _ret.v; } catch (e) { session.Log.error("VESH:" + e.stack); //__.debug && console.log(e.stack); } }(); case 12: if (!action) { _context.next = 23; break; } if (action.isStatic) __.actions[session.classtype] = action; session.action = action; //先调用preload方法 _context.next = 17; return _tool2.default.callback2(action.preload, action, req, rep, session); case 17: _context.t0 = _context.sent; if (_context.t0) { _context.next = 20; break; } _context.t0 = false; case 20: return _context.abrupt("return", _context.t0); case 23: __.actions[session.classtype] = false; return _context.abrupt("return", false); case 25: case "end": return _context.stop(); } } }, _callee, this); })); function onrequest(_x2, _x3, _x4, _x5) { return _ref.apply(this, arguments); } return onrequest; }() }, { key: "onresponse", value: function () { var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(req, rep, session, call) { return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!(session.action && session.action.unload)) { _context2.next = 7; break; } _context2.next = 3; return _tool2.default.callback2(session.action.unload, session.action, req, rep, session); case 3: _context2.t0 = _context2.sent; if (_context2.t0) { _context2.next = 6; break; } _context2.t0 = false; case 6: return _context2.abrupt("return", _context2.t0); case 7: return _context2.abrupt("return", false); case 8: case "end": return _context2.stop(); } } }, _callee2, this); })); function onresponse(_x6, _x7, _x8, _x9) { return _ref2.apply(this, arguments); } return onresponse; }() }]); return LoadModuler; }(_app.AModuler); /** * 用于自动填充ni对象的方法 */ var AFilter = exports.AFilter = function () { function AFilter() { (0, _classCallCheck3.default)(this, AFilter); } (0, _createClass3.default)(AFilter, [{ key: "fill", value: function fill(req, rep, session, form) { return false; } }]); return AFilter; }(); /** * 用户Form参数填充 */ var FormFilter = exports.FormFilter = function (_AFilter) { (0, _inherits3.default)(FormFilter, _AFilter); function FormFilter() { (0, _classCallCheck3.default)(this, FormFilter); return (0, _possibleConstructorReturn3.default)(this, (FormFilter.__proto__ || (0, _getPrototypeOf2.default)(FormFilter)).call(this)); } (0, _createClass3.default)(FormFilter, [{ key: "fill", value: function fill(req, rep, session) { var form = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; _tool2.default.merge(form, session.querystring, true); if (session.form) _tool2.default.merge(form, session.form, true); return false; } }]); return FormFilter; }(AFilter); /** * ;号分割的sessionNames):AFilter子类,使用Session数据填充form的值 */ var SessionFilter = exports.SessionFilter = function (_AFilter2) { (0, _inherits3.default)(SessionFilter, _AFilter2); function SessionFilter(sessionNames) { (0, _classCallCheck3.default)(this, SessionFilter); var _this3 = (0, _possibleConstructorReturn3.default)(this, (SessionFilter.__proto__ || (0, _getPrototypeOf2.default)(SessionFilter)).call(this)); var _pri4 = pri(_this3, { sessionNames: (sessionNames + "").split(";").filter(function (v) { return _tool2.default.isValid(v); }) }), _ = _pri4._, __ = _pri4.__; return _this3; } (0, _createClass3.default)(SessionFilter, [{ key: "fill", value: function () { var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(req, rep, session, form) { var _this4 = this; var _pri5, _, __; return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _pri5 = pri(this), _ = _pri5._, __ = _pri5.__; _context4.next = 3; return _tool2.default.each(__.sessionNames, function () { var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(v) { var data, strf; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return session.data(v); case 2: data = _context3.sent; if (!data) { _context3.next = 7; break; } strf = data.Name.replace(/\./g, "_") + "_"; _context3.next = 7; return _tool2.default.forC(data.serialize(), function (key, value) { form[strf + key.replace(/\./g, "_")] = value; return false; }); case 7: return _context3.abrupt("return", false); case 8: case "end": return _context3.stop(); } } }, _callee3, _this4); })); return function (_x15) { return _ref4.apply(this, arguments); }; }()); case 3: return _context4.abrupt("return", false); case 4: case "end": return _context4.stop(); } } }, _callee4, this); })); function fill(_x11, _x12, _x13, _x14) { return _ref3.apply(this, arguments); } return fill; }() }]); return SessionFilter; }(AFilter); /** * 设定可以参数化的AppSetting * @param {string} sessionNames */ var AppSettingFilter = exports.AppSettingFilter = function (_AFilter3) { (0, _inherits3.default)(AppSettingFilter, _AFilter3); function AppSettingFilter(sessionNames) { (0, _classCallCheck3.default)(this, AppSettingFilter); var _this5 = (0, _possibleConstructorReturn3.default)(this, (AppSettingFilter.__proto__ || (0, _getPrototypeOf2.default)(AppSettingFilter)).call(this)); var _pri6 = pri(_this5, { sessionNames: (sessionNames + "").split(";").filter(function (v) { return _tool2.default.isValid(v); }) }), _ = _pri6._, __ = _pri6.__; return _this5; } (0, _createClass3.default)(AppSettingFilter, [{ key: "fill", value: function () { var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(req, rep, session, form) { var _pri7, _, __; return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _pri7 = pri(this), _ = _pri7._, __ = _pri7.__; _context5.next = 3; return _tool2.default.each(__.sessionNames, function (v) { var data = session.AppSettings(v); data && (form[v.replace(/\./g, "_")] = data); return false; }); case 3: return _context5.abrupt("return", false); case 4: case "end": return _context5.stop(); } } }, _callee5, this); })); function fill(_x16, _x17, _x18, _x19) { return _ref5.apply(this, arguments); } return fill; }() }]); return AppSettingFilter; }(AFilter); /** * NiModuler(filters,middler[,appname:"Ni"]):Ni处理器Moduler,主要识别query中的_n参数,并对数据集进行填充和请求 */ var NiModuler = exports.NiModuler = function (_AModuler2) { (0, _inherits3.default)(NiModuler, _AModuler2); function NiModuler() { var filter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var middler = arguments[1]; var appname = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "Ni"; var strict = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; (0, _classCallCheck3.default)(this, NiModuler); var _this6 = (0, _possibleConstructorReturn3.default)(this, (NiModuler.__proto__ || (0, _getPrototypeOf2.default)(NiModuler)).call(this, "NiModuler")); var _pri8 = pri(_this6, { filter: filter.length > 0 ? filter : function () { throw new Error("必须定义数据填充逻辑数组filter"); }(), middler: middler, ni: middler ? new _ni2.default.NiTemplateManager(middler, appname) : function () { throw new Error("必须定义中介者middler对象"); }(), strict: !!strict }), _ = _pri8._, __ = _pri8.__; return _this6; } (0, _createClass3.default)(NiModuler, [{ key: "onrequest", value: function () { var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(req, rep, session) { var _this7 = this; var _pri9, _, __, templatename; return _regenerator2.default.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _pri9 = pri(this), _ = _pri9._, __ = _pri9.__; session.dbresult = session.dbresult || []; templatename = session.param("_n"); if (!templatename) { _context9.next = 9; break; } _context9.next = 6; return _tool2.default.next(function (data) { data.params = {}; return _tool2.default.each(__.filter, function (v, call) { return v.fill(req, rep, session, data.params, call); }); }, function () { var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(data) { var cmd, pers, hasRight; return _regenerator2.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return __.ni.getCommand(templatename, session.methodname); case 2: cmd = _context7.sent; if (!(cmd && cmd.params)) { _context7.next = 15; break; } if (!cmd.params["_TestPermission"]) { _context7.next = 11; break; } pers = (cmd.params["_TestPermission"].value || "").split(",").filter(function (v) { return v.length > 0; }); hasRight = false; _context7.next = 9; return _tool2.default.each(pers, function () { var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(v, call) { return _regenerator2.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return session.hasRight(v); case 2: if (!_context6.sent) { _context6.next = 4; break; } hasRight = true; case 4: return _context6.abrupt("return", false); case 5: case "end": return _context6.stop(); } } }, _callee6, _this7); })); return function (_x27, _x28) { return _ref8.apply(this, arguments); }; }(), true); case 9: if (!(pers.length > 0 && !hasRight)) { _context7.next = 11; break; } throw new Error(session.methodname + "\u6267\u884C\u9700\u8981" + cmd.params["_TestPermission"].value + "\u6743\u9650!"); case 11: if (!((cmd.params["_TestLogin"] || cmd.params["_User_UID"]) && !session.User.Login)) { _context7.next = 13; break; } throw new Error(session.methodname + "\u6267\u884C\u9700\u8981\u767B\u5F55\u6267\u884C!"); case 13: _context7.next = 17; break; case 15: if (!__.strict) { _context7.next = 17; break; } throw new Error("\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u6A21\u677F\u547D\u4EE4:" + session.methodname + "\u3002"); case 17: return _context7.abrupt("return", false); case 18: case "end": return _context7.stop(); } } }, _callee7, _this7); })); return function (_x26) { return _ref7.apply(this, arguments); }; }(), function () { var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(data) { var result; return _regenerator2.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.prev = 0; session.dbparams = data.params; _context8.next = 4; return __.ni.excute(templatename, session.methodname, data.params); case 4: result = _context8.sent; if (result.hasData && result.hasData()) { session.dbresult.push(result.last()); } return _context8.abrupt("return", false); case 9: _context8.prev = 9; _context8.t0 = _context8["catch"](0); console.log(_context8.t0.stack); throw _context8.t0; case 13: case "end": return _context8.stop(); } } }, _callee8, _this7, [[0, 9]]); })); return function (_x29) { return _ref9.apply(this, arguments); }; }()); case 6: return _context9.abrupt("return", false); case 9: return _context9.abrupt("return", false); case 10: case "end": return _context9.stop(); } } }, _callee9, this); })); function onrequest(_x23, _x24, _x25) { return _ref6.apply(this, arguments); } return onrequest; }() }, { key: "onresponse1", value: function onresponse1(req, rep, session) { delete session.dbparams; delete session.dbresult; return false; } }]); return NiModuler; }(_app.AModuler); /** * ActionModuler:Action处理器Moduler并根据返回值决定是否请求页面 */ var ActionModuler = exports.ActionModuler = function (_AModuler3) { (0, _inherits3.default)(ActionModuler, _AModuler3); function ActionModuler() { (0, _classCallCheck3.default)(this, ActionModuler); var _this8 = (0, _possibleConstructorReturn3.default)(this, (ActionModuler.__proto__ || (0, _getPrototypeOf2.default)(ActionModuler)).call(this, "ActionModuler")); pri(_this8); return _this8; } (0, _createClass3.default)(ActionModuler, [{ key: "onrequest", value: function () { var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(req, rep, session) { var status, _ac, ret; return _regenerator2.default.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: status = (session.status || "").toLowerCase(); if (!(session.action && session.action[status])) { _context10.next = 12; break; } _ac = session.action[status]; ret = false; if (_ac["needs"]) { _ac["needs"].forEach(function (n) { var need = n(req, rep, session); if (need) { session.end(401, need); ret = true; return true; } }); } if (ret) { _context10.next = 12; break; } _context10.next = 8; return _tool2.default.callback2(session.action[status], session.action, req, rep, session); case 8: _context10.t0 = _context10.sent; if (_context10.t0) { _context10.next = 11; break; } _context10.t0 = false; case 11: return _context10.abrupt("return", _context10.t0); case 12: return _context10.abrupt("return", false); case 13: case "end": return _context10.stop(); } } }, _callee10, this); })); function onrequest(_x30, _x31, _x32) { return _ref10.apply(this, arguments); } return onrequest; }() }]); return ActionModuler; }(_app.AModuler); /** * * @param {*} 分号隔开的命令类型 */ var NeedMethod = exports.NeedMethod = function NeedMethod() { var methods = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "GET"; var method = {}; methods = methods.toUpperCase(); methods.split(";").forEach(function (v) { return method[v.toLowerCase()] = true; }); return function (target) { return _tool2.default.prop(target, "needs", function (req, rep, session) { return method[req.method] ? false : "限制的Method为" + methods; }); }; }; /** * * @param {*} 分号隔开的命令类型 */ var TestMethod = exports.TestMethod = function TestMethod(paras) { var methods = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "GET"; var session = paras[2]; return session.testMethod(methods); }; /** * 限制方法为Get访问 */ var NeedGet = exports.NeedGet = function NeedGet() { return NeedMethod("get"); }; /** * 限制方法为Get访问 */ var TestGet = exports.TestGet = function TestGet(paras) { var session = paras[2]; return session.testGet(); }; /** * 限制方法为Post访问 */ var NeedPost = exports.NeedPost = function NeedPost() { return NeedMethod("post"); }; /** * 限制方法为POST访问 */ var TestPost = exports.TestPost = function TestPost(paras) { var session = paras[2]; return session.testPost(); }; /** * 限制方法为Restful访问 */ var NeedRestful = exports.NeedRestful = function NeedRestful() { return NeedMethod("get;post;put;delete"); }; /** * 限制方法为Get访问 */ var TestRestful = exports.TestRestful = function TestRestful(paras) { var session = paras[2]; return session.testRestful(); }; /** * 限制参数满足条件 * @param {要判断的参数} key * @param {正则} regex * @param {错误说明} error * @param {是否必填} isRequire */ var NeedRegex = exports.NeedRegex = function NeedRegex(key, regex, error) { var isRequire = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; regex = regex.test ? regex : new RegExp(regex, "i"); return function (target) { return _tool2.default.prop(target, "needs", function (req, rep, session) { var value = session.param(key); return typeof value != "undefined" && value != null && ("" + value).length ? regex.test(value) ? false : error || "\n \u9650\u5236$ { key }\n \u53C2\u6570\u9700\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F\u8981\u6C42: $ { regex }\n " : isRequire ? "\n \u9650\u5236$ { key }\n \u53C2\u6570\u4E3A\u5FC5\u586B " : false; }); }; }; /** * 限制参数满足条件 * @param {要判断的参数} key * @param {正则} regex * @param {错误说明} error * @param {是否必填} isRequire */ var TestRegex = exports.TestRegex = function TestRegex(paras, key, regex, error) { var isRequire = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; var req = paras[0], rep = paras[1], session = paras[2]; return session.testRegex(key, regex, error, isRequire); }; /** * 限制参数满足是数字 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedNumber = exports.NeedNumber = function NeedNumber(key, error, isRequire) { return NeedRegex(key, /^([0-9]+\.{0,1}[0-9]{0,2})$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u6570\u5B57 ", isRequire); }; /** * 限制参数满足是数字 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestNumber = exports.TestNumber = function TestNumber(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; return session.testNumber(key, error, isRequire); }; /** * 限制参数满足是整数 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedInt = exports.NeedInt = function NeedInt(key, error, isRequire) { return NeedRegex(key, /^([0-9]+)$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u6B63\u6574\u6570 ", isRequire); }; /** * 限制参数满足是数字 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestInt = exports.TestInt = function TestInt(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; return session.testInt(key, error, isRequire); }; /** * 限制参数满足是连续字母 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedLetter = exports.NeedLetter = function NeedLetter(key, error, isRequire) { return NeedRegex(key, /^([A-Za-z]+)$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u8FDE\u7EED\u5B57\u6BCD ", isRequire); }; /** * 限制参数满足是数字 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestLetter = exports.TestLetter = function TestLetter(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; return session.testLetter(key, error, isRequire); }; /** * 限制参数满足是密码规范 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedPassword = exports.NeedPassword = function NeedPassword(key, error, isRequire) { return NeedRegex(key, /^(([a-zA-Z]|\w){5,17})$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u6EE1\u8DB3\u5BC6\u7801\u8981\u6C42 ", isRequire); }; /** * 限制参数满足是数字 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestPassword = exports.TestPassword = function TestPassword(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; return session.testPassword(key, error, isRequire); }; /** * 限制参数满足是非空必填 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedRequired = exports.NeedRequired = function NeedRequired(key, error) { var regex = /^(\s*\S\s*)+$/g; return function (target) { return _tool2.default.prop(target, "needs", function (req, rep, session) { var value = session.param(key); return _tool2.default.isValid(value) ? regex.test(value) ? false : error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u6EE1\u8DB3\u975E\u7A7A\u8981\u6C42 " : error; }); }; }; /** * 限制参数满足是非空必填 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestRequired = exports.TestRequired = function TestRequired(paras, key, error) { var req = paras[0], rep = paras[1], session = paras[2]; return session.testRequired(key, error); }; /** * 限制参数满足是身份证 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedCard = exports.NeedCard = function NeedCard(key, error, isRequire) { return NeedRegex(key, /^((\d{14}|\d{17})(\d|[a-zA-Z]))$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u8EAB\u4EFD\u8BC1 ", isRequire); }; /** * 限制参数满足是身份证 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestCard = exports.TestCard = function TestCard(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testCard(key, error, isRequire); }; /** * 限制参数满足是手机号 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedMobile = exports.NeedMobile = function NeedMobile(key, error, isRequire) { return NeedRegex(key, /^(1[3|4|5|6|7|8][0-9]\d{8})$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u624B\u673A\u53F7 ", isRequire); }; /** * 限制参数满足是手机号 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestMobile = exports.TestMobile = function TestMobile(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testMobile(key, error, isRequire); }; /** * 限制参数满足是座机 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedPhone = exports.NeedPhone = function NeedPhone(key, error, isRequire) { return NeedRegex(key, /^(\d{3}-\d{8}|\d{4}-\d{7})$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u5EA7\u673A\u53F7 ", isRequire); }; /** * 限制参数满足是座机 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestPhone = exports.TestPhone = function TestPhone(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testPhone(key, error, isRequire); }; /** * 限制参数满足是网络地址 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedUrl = exports.NeedUrl = function NeedUrl(key, error, isRequire) { return NeedRegex(key, /^((http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?)$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662FURL ", isRequire); }; /** * 限制参数满足是网络地址 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestUrl = exports.TestUrl = function TestUrl(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testUrl(key, error, isRequire); }; /** * 限制参数满足是电子邮箱 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedEmail = exports.NeedEmail = function NeedEmail(key, error, isRequire) { return NeedRegex(key, /^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u90AE\u7BB1 ", isRequire); }; /** * 限制参数满足是电子邮箱 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestEmail = exports.TestEmail = function TestEmail(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testEmail(key, error, isRequire); }; /** * 限制参数满足是中文 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedChinese = exports.NeedChinese = function NeedChinese(key, error, isRequire) { return NeedRegex(key, /^([\u4e00-\u9fa5]{0,})$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u4E2D\u6587 ", isRequire); }; /** * 限制参数满足是中文 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestChinese = exports.TestChinese = function TestChinese(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testChinese(key, error, isRequire); }; /** * 限制参数满足是QQ * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedQQ = exports.NeedQQ = function NeedQQ(key, error, isRequire) { return NeedRegex(key, /^([1-9]\d{4,12})$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662FQQ\u53F7 ", isRequire); }; /** * 限制参数满足是QQ * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestQQ = exports.TestQQ = function TestQQ(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testQQ(key, error, isRequire); }; /** * 限制参数满足是邮政编码 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedZipCode = exports.NeedZipCode = function NeedZipCode(key, error, isRequire) { return NeedRegex(key, /^([1-9]\d{5}(?!\d))$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u90AE\u7F16 ", isRequire); }; /** * 限制参数满足是邮政编码 * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestZipCode = exports.TestZipCode = function TestZipCode(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testZipCode(key, error, isRequire); }; /** * 限制参数满足是IP * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedIP = exports.NeedIP = function NeedIP(key, error, isRequire) { return NeedRegex(key, /^(([\d+\.]{3}|[\d+\.]{5})\d+)$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662FIP ", isRequire); }; /** * 限制参数满足是IP * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestIP = exports.TestIP = function TestIP(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testIP(key, error, isRequire); }; /** * 限制参数满足是金额(2位小数) * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var NeedCurreny = exports.NeedCurreny = function NeedCurreny(key, error, isRequire) { return NeedRegex(key, /^(\d+\.\d{2})$/g, error || "\n \u9650\u5236$ { key }\n \u8981\u6C42\u662F\u91D1\u989D ", isRequire); }; /** * 限制参数满足是金额(2位小数) * @param {要判断的参数} key * @param {错误说明} error * @param {是否必填} isRequire */ var TestCurreny = exports.TestCurreny = function TestCurreny(paras, key, error, isRequire) { var req = paras[0], rep = paras[1], session = paras[2]; session.testCurreny(key, error, isRequire); }; /** * 限制操作所需权限 * @param {要判断的参数} key * @param {正则} regex * @param {错误说明} error * @param {是否必填} isRequire */ var NeedPermission = exports.NeedPermission = function NeedPermission(key, error) { return function (target) { return _tool2.default.prop(target, "needs", function () { var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(req, rep, session) { var _this9 = this; var val, e; return _regenerator2.default.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: val = false; _context12.next = 3; return _tool2.default.each(key.split(","), function () { var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(v) { return _regenerator2.default.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: _context11.t0 = val; if (_context11.t0) { _context11.next = 5; break; } _context11.next = 4; return session.hasRight(v); case 4: _context11.t0 = _context11.sent; case 5: if (!_context11.t0) { _context11.next = 9; break; } _context11.t1 = false; _context11.next = 10; break; case 9: _context11.t1 = error || "\u8BE5\u64CD\u4F5C\u9700\u8981" + v + "\u6743\u9650 "; case 10: val = _context11.t1; case 11: case "end": return _context11.stop(); } } }, _callee11, _this9); })); return function (_x40) { return _ref12.apply(this, arguments); }; }(), true); case 3: if (!val) { _context12.next = 7; break; } e = new Error(val); e.status = 401; throw e; case 7: return _context12.abrupt("return", false); case 8: case "end": return _context12.stop(); } } }, _callee12, this); })); return function (_x37, _x38, _x39) { return _ref11.apply(this, arguments); }; }()); }; }; /** * 限制操作所需权限 * @param {要判断的参数} key * @param {正则} regex * @param {错误说明} error * @param {是否必填} isRequire */ var TestPermission = exports.TestPermission = function () { var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(paras, key, error) { var req, rep, session; return _regenerator2.default.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: req = paras[0], rep = paras[1], session = paras[2]; _context13.next = 3; return session.testPermission(key, error); case 3: return _context13.abrupt("return", _context13.sent); case 4: case "end": return _context13.stop(); } } }, _callee13, undefined); })); return function TestPermission(_x41, _x42, _x43) { return _ref13.apply(this, arguments); }; }(); exports.default = { AAction: AAction, LoadModuler: LoadModuler, AFilter: AFilter, SessionFilter: SessionFilter, FormFilter: FormFilter, AppSettingFilter: AppSettingFilter, NiModuler: NiModuler, NeedCard: NeedCard, NeedChinese: NeedChinese, NeedCurreny: NeedCurreny, NeedEmail: NeedEmail, NeedGet: NeedGet, NeedIP: NeedIP, NeedInt: NeedInt, NeedLetter: NeedLetter, NeedMethod: NeedMethod, NeedMobile: NeedMobile, NeedNumber: NeedNumber, NeedPassword: NeedPassword, NeedPhone: NeedPhone, NeedPost: NeedPost, NeedQQ: NeedQQ, NeedRegex: NeedRegex, NeedRequired: NeedRequired, NeedRestful: NeedRestful, NeedUrl: NeedUrl, NeedZipCode: NeedZipCode, TestCard: TestCard, TestChinese: TestChinese, TestCurreny: TestCurreny, TestEmail: TestEmail, TestGet: TestGet, TestIP: TestIP, TestInt: TestInt, TestLetter: TestLetter, TestMethod: TestMethod, TestMobile: TestMobile, TestNumber: TestNumber, TestPassword: TestPassword, TestPhone: TestPhone, TestPost: TestPost, TestQQ: TestQQ, TestRegex: TestRegex, TestRequired: TestRequired, TestRestful: TestRestful, TestUrl: TestUrl, TestZipCode: TestZipCode, NeedPermission: NeedPermission, TestPermission: TestPermission }; var pri = _tool2.default.pris(); //# sourceMappingURL=core-modulers.js.map