UNPKG

codekart

Version:

Web application framework for Node.js

231 lines (189 loc) 5.42 kB
/** * 核心(用户自定义示例) */ var view = load.core('!view/view'); var render = load.core('!server/render'); var json = load.tool('!json'); // 表单数据处理模块 var formidable = null; //表名是框架核心 exports.__framework = true; /** * 返回内容 */ exports.render = function(context,code,head){ render.text(this.request,this.response,context,code,head); }; /** * 返回json格式内容 */ exports.renderJson = function(data){ render.json(this.request,this.response,data); }; /** * 返回api内容 */ exports.renderApi = function(code, msg, data){ render.api(this.request, this.response, code, msg, data); }; /** * 返回跳转页面 */ exports.renderJump = function(url){ url = url || this.request.url.query.back_url || false; if(url) this.render('<script type="text/javascript">window.location.href="'+url+'"</script>'); else this.render('must have url get parameter: [back_url]'); }; /** * 返回move302 */ exports.render302 = function(url){ this.response.writeHead(302, { 'Content-Type': 'text/html', 'Content-Encoding':'UTF-8', Location:url}); this.response.end(); }; /** * 重定向视图处理程序 */ exports.view = function(path){ view.render(this.request,this.response,path); }; /** * 说明:设置COOKIE * 设置set_cookie('name', 'initnode', 30, '/'); * name cookie名称 * value cookie值 * expires 有效期时间,秒计算 * path 有效目录 * domain 域名 */ exports.__cookieArr = []; //cookie数组 exports.setCookie = function (name, value, expires, path, domain) { var cookieStr = ''; cookieStr = name + '=' + value + ';'; if (expires != undefined) { expires = parseInt(expires); var today = new Date(); var time = today.getTime() + expires * 1000; var new_date = new Date(time); var expiresDate = new_date.toGMTString(); //转换成GMT 格式。 cookieStr += 'expires=' + expiresDate + ';'; } //console.log('目录'); //目录 if (path != undefined) { cookieStr += 'path=' + path + ';'; } //console.log('域名'); //域名 if (domain != undefined) { cookieStr += 'domain=' + domain + ';'; } this.__cookieArr.push(cookieStr); //console.log('push'); //自动设置 this.response.setHeader("Set-Cookie", this.__cookieArr); return true; }; /** * 说明:取得COOKIE * 设置getCookie('name'); * name cookie名称 */ exports.getCookie = function (name) { if(!this.request || !this.request.cookie){ return; } return this.request.cookie[name]; }; /** * 说明:删除COOKIE * delCookie('name'); * name cookie名称 */ exports.delCookie = function (name,path) { path = path || '/'; this.setCookie(name,'',-9999,path); return true; }; /** * !!!弃用!!! * 说明:header头部发送cookie设置信息 */ exports.flushCookie = function () { //console.log('setHeader'); //console.log(this.__cookieArr); this.response.setHeader("Set-Cookie", this.__cookieArr); }; /** * 从 url post get 三个位置获取参数 */ exports.param = function(name, defaultValue){ var param = this.request.url.param || {}; var post = this.request.post || {}; var get = this.request.get || {}; if(undefined != param[name]) return param[name]; if(undefined != post[name]) return post[name]; if(undefined != get[name]) return get[name]; return defaultValue; }; /** * 从 url post get 三个位置依次检查参数 * @must 必须参数 数组 * @other 其他参数 字典 带默认值 */ exports.checkParam = function(must, other){ var param = {}; //必须参数 if(must){ for(var m in must){ var p = this.param(must[m]); if(p===undefined){ return false; //验证失败 } param[must[m]] = p; } } //其他参数 if(other){ for(var o in other){ param[o] = this.param(o, other[o]); } } //返回参数 return param; }; /** * 处理表单数据 */ exports.formdata = function (callback) { if(!formidable){ //加载模块 formidable = require('formidable'); //开始处理表单 } var form = new formidable.IncomingForm(); form.parse(this.request,callback); /* form.parse(this.request, function(err, fields, files) { //res.writeHead(200, {'content-type': 'text/plain'}); //res.write('received upload:\n\n'); //res.end(util.inspect({fields: fields, files: files})); }); */ /* { fields: { title: 'something' }, files: { upload: { domain: null, _events: {}, _maxListeners: 10, size: 307905, path: 'C:\\Users\\DELL\\AppData\\Local\\Temp\\46212f78b8ce64721d57b83111d3e829', name: '1.jpg', type: 'image/jpeg', hash: null, lastModifiedDate: Fri Jul 04 2014 15:51:32 GMT+0800 (...), _writeStream: [Object] } } } */ }