zxy包帮助文档: ------------------------------------------------------------------------ 方法:runAllServer(conf,[middleware]); 注释:多核运行Express、Redis、Mysql 参数:conf:JSON格式 对于Express、Redis、Mysql的配置参数 参见frame structure deme中的conf.js middleware:可选参数 Express路由中间件 一个Function 可用于Session校验等 function (req, res, callback) 如果session通过 需要callback 否则则直接响应 返回值:无(控制台输出相关信息) ------------------------------------------------------------------------ 方法:runExpress(conf,[middleware]); 注释:单独运行Express 参数:conf:JSON格式 对于Express的配置参数 参见frame structure deme中的conf.js middleware:可选参数 Express路由中间件 一个Function 可用于Session校验等 function (req, res, callback) 如果session通过 需要callback 否则则直接响应 返回值:无(控制台输出相关信息) ------------------------------------------------------------------------ 方法:runMysql(conf,all); 注释:单独运行Mysql 参数:JSON格式 对于Mysql的配置参数 参见frame structure deme中的conf.js 返回值:无(控制台输出相关信息) ------------------------------------------------------------------------ 方法:runRedis(conf); 注释:单独运行Redis 参数:JSON格式 对于Redis的配置参数 参见frame structure deme中的conf.js 返回值:无(控制台输出相关信息) ------------------------------------------------------------------------ 原型函数说明: 1、格式化字符串 返回:格式化之后的字符串 "您的订单{0}已经提交成功,预计{1}送达".Format("20150616001", "06月20日") 2、获取字节长度 返回:字符串的字节长度(中文占用2个字节长度) "中文测试".GetByteLength() 3、去除空格 返回:去除左/右/前后空格后的字符串 " abc ".Ltrim() " abc ".Rtrim() " abc ".Trim() 4、格式化时间 返回:指定格式的时间字符串 new Date().Format('yyyy-MM-dd hh:mm:ss') 5、字符串开头/结尾是否包含指定字符串 返回:true/false 'abc'.StartWith('a') 'abc'.EndWith('c') ------------------------------------------------------------------------ 全局变量说明: 全局变量分3中类型:1、变量 使用“v_”打头 2、模块 使用“m_”打头 3、方法 使用“f_”打头 1、使用方法:require('zxy').app['全局变量别名'] 2、全局变量列表: 1、v_singleCoreProcess:当前环境是否是单核运行 2、m_apparatus:服务器操作相关 a、runCommand(cmd,callback) 运行Linux命令 参数:cmd 需要运行的命令 callback(err,stdout, stderr) 回调函数 返回值:无(使用回调函数) b、mkdirsSync(dirpath, mode):同步递归创建文件夹 参数:dirpath 将创建的目录路径 mode 目录权限(读写权限),默认0777 返回值:true/false 3、m_convert:转换相关 a、objToJson(model) 实体对象转JSON 参数:实体对象 返回值:JSON对象 失败返回undefined b、jsonStrToJson(jsonStr) JSON字符串转实体对象 参数:json格式的字符串 返回值:JSON对象 失败返回undefined c、objToStr(obj) object转string 参数:object对象 返回值:string类型的转换后的字符串 4、m_cryptogram:加解密相关 a、sha1(msg) SHA1加密 参数:要加密的字符串 返回值:SHA1加密后的字符串 b、md5(str) MD5加密 参数:要加密的字符串 返回值:MD5加密后的字符串 c、aesEncrypt(data,e_key) AES加密 参数:data 要加密的字符串 e_key 加密密钥 返回值:AES加密后的字符串 d、aesDecrypt(data,d_key) AES解密 参数:data 要解密的字符串 d_key 解密密钥 返回值:AES解密后的字符串 5、m_encode:编码相关 a、base64Encode(value) Base64编码 参数:要Base64编码的字符串 返回值:编码后的字符串 b、base64Decode(value) Base64解码 参数:要Base64解码的字符串 返回值:解码后的字符串 c、gbkToUtf8(str) GBK转UTF8 参数:要转换成UTF8编码的GBK编码格式字符串 返回值:编码后的字符串 6、m_obj:对象操作相关 a、clone(obj) 克隆对象 参数:需要克隆的对象 返回值:克隆后的对象 无法克隆或异常 返回undefined 7、m_obtain:获取数据相关 a、getRandomNum(Min, Max) 生成随机数 参数:Min 随机数的最小值 Max 随机数的最大值 返回值:指定的范围中的随机值 b、getClientIP(req) 获取客户端IP地址 参数:请求对象 返回值:客户端IP地址 c、getServerIP() 获取服务器IP地址 参数:无 返回值:服务端IP地址 d、GetUrlParams(name, url) 获取地址栏参数 参数:name 地址栏参数名 url 地址栏地址 默认window.location.search 返回值:参数对应的值 e、getRandomStr(len, chars) 生成随机字符串 参数:len 生成的长度 不传则为默认8 只允许int类型 chars 生成指定字符串允许出现的字符 不传则默认大小写字母与数字 返回值:介于chars之间的指定长度的随机字符串 f、guid() 获取Guid 参数:无 返回值:guid g、guid_empty() 获取空guid 参数:无 返回值:00000000-0000-0000-0000-000000000000 h、getStartArguments([splitStr]) 获取启动参数 参数:启动参数分隔符 返回值:JSON格式的参数 8、m_request:请求相关 a、postRequest(requestHead, host, port, path, data, headers, res, callback) POST请求 参数:requestHead 协议方式 http或https 默认http host 请求域名 port 请求端口 默认80 path 请求路由地址 data 请求数据 headers 请求头部 传null 头部默认只有Content-Length res 响应对象 用于请求直接响应 callback 请求结束后的回调 如果传了该参数 则res将失效 返回值:无(使用回调函数或res响应对象 直接响应) b、getRequest(requestHead, host, port, path, data, headers, res, callback) GET请求 参数:同POST请求 返回值:同POST请求 9、m_verify:验证相关 a、checkIdcard(idcard) 校验身份证号码 参数:需要校验的身份证号码字符串 返回值:JSON对象 包含errcode和errmsg errcode为0代表身份证号码格式合法 其余为不合法,并在errmsg中返回原因 b、checkCellphone(tel) 手机号格式校验 参数:需要校验的手机号码字符串 返回值:true/false c、checkEmail(email) 邮箱格式校验 参数:需要校验的邮箱字符串 返回值:true/false d、checkQQ(qq) QQ号验证 参数:需要校验的QQ号码字符串 返回值:true/false e、isArray(rows) 是否是数组 参数:需要校验的值 返回值:true/false f、isJson(obj) 是否JSON 参数:需要校验的值 返回值:true/false g、isObject(rows) 是否是object对象 参数:需要校验的值 返回值:true/false h、isJsonArray(obj) 是否JSON数组 参数:需要校验的值 返回值:true/false 10、m_mysql:mysql操作相关(必须执行过方法runAllServer或runMysql后,才能使用该模块) a、query(sql, [params], [callback]) 执行mysql语句 参数:sql 要执行的sql语句 params JSON格式的参数 防止SQL注入 callback(result) 执行结果回调函数 返回值:无(使用回调函数) 示例代码: ①使用参数化: zxy.app.m_mysql.query("select * from users where userid = @userid and pwd = @pwd",{userid:'admin',pwd:'pwd'},function(r){}) ②不使用参数化 zxy.app.m_mysql.query("select * from users where userid = '"+userid+"' and pwd = '"+pwd+"'",function(r){}) b、run(sql, [params]) 执行mysql语句 同query方法,但是该方法不提供回调,使用promise的then与catch 11、m_redis:redis操作相关(必须执行过方法runAllServer或runRedis后,才能使用该模块) a、set(key, value, [time]) 设置 参数:key 键 value 值 time 过期时间 单位秒 可选参数 如果不传 则永不过期 返回值:无 b、get(key, callback) 获取 参数:key 键 callback(result) 获取回调函数 获取成功 返回键对应的值 失败返回undefined 返回值:无(使用回调函数) c、del(key) 删除 参数:键 返回值:无 d、keys(pattern, callback) 获取所有的键 参数:pattern 匹配方式 类似正则表达式 默认“*” * 匹配数据库中所有 key h?llo 匹配 hello , hallo 和 hxllo 等 h*llo 匹配 hllo 和 heeeeello 等 h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo callback(keys) 所有匹配的键 返回值:无(使用回调函数) e、ttl(key, callback) 以秒为单位返回 key 的剩余生存时间 如果不存在key或者长期有效 返回-1 参数:key 键 callback(time) 剩余的生存时间 单位秒 返回值:无(使用回调函数) f、exists(key, callback) 是否存在key 参数:key 键 callback(exists) true/false 返回值:无(使用回调函数) g、rpush(key, value) 将一个或多个值 value 插入到列表 key 的表尾(最右边) 可用于队列消息的发布 参数:key 列表键 value 值 返回值:无 h、lpop(key, callback) 移除并返回列表 key 的头元素 可用于队列消息的订阅 参数:key 列表键 callback(value) 列表中的头元素值 返回值:无(使用回调函数) 12、m_ucpaas:ucpaas短信网关操作相关(必须执行过方法runAllServer或runMysql后,才能使用该模块,并需要在zxy/lib/ucpaas-sms/conf.js进行必要配置) a、sendSMSCode(to,content) 发送验证码短信 参数:to 收件人手机号码 content 短信模版中的替换项,多个替换项按照顺序使用英文逗号分割 返回值:无(使用promise的then与catch) b、sendSMSNotify(to,content) 获取 参数:to 收件人手机号码 content 短信模版中的替换项,多个替换项按照顺序使用英文逗号分割 返回值:无(使用promise的then与catch) 13、f_job:schedule定时任务 如果需要执行定时任务,在启动runAllServer之前,将f_job赋值(f_job为JSON格式的数组,每个JSON对应一个定时任务),即可运行定时任务 示例如下: var zxy = require('zxy'); zxy.app.f_job = [{ //任务名称(自定义 字符串类型,用于多任务区分) name: 'test', //定时任务时间到达后 执行函数对应的参数 params: [{ id: 1 }] //定时任务配置 http://www.jb51.net/article/50597.htm conf: { //每隔1秒执行一次 //second: [0,1,2,3,4,5,6,7,8,9,10,...55,56,57,58,59] //每隔5秒执行一次 //second: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55] //每隔1分钟执行一次 //minute: [0,1,2,3,4,5,6,7,8,9,10,...55,56,57,58,59] //每小时的30分执行一次(即每半小时一次) //minute: 30 //每周一到周三的12点执行一次 //dayOfWeek : [0, new schedule.Range(1,3)], //hour:12, //minute:0 //特定时间执行 //待完善... }, //定时时间到达后 执行的方法 func: function (params, name) { console.log(name, params); } }]; zxy.runAllServer(setting); ------------------------------------------------------------------------ 默认API说明: 1、文件的上传与下载(UI端实现方式参考zxy/frame structure demo/static/upload.html) 1、上传文件(模拟Form表单提交):测试地址 http://127.0.0.1:88/express/upload.html a、接口地址 http://host:port/zxy-upload b、请求方式 POST c、参数 Form表单存放待上传的文件 d、返回值 上传的文件对应的GUID,可用于下载,上传多个,则返回GUID数组 2、下载文件:测试地址 http://127.0.0.1:88/express/upload.html a、接口地址 http://host:port/zxy-download/:guid b、请求方式 GET c、参数 guid:上传时返回的GUID值 d、返回值 流(图片可直接显示在html中 如