get获取具体参数方式的封装 app/controller/core/base.js
'use strict';
const { Controller } = require('egg');
class BaseController extends Controller {
/**
* 获取get传值
* @param {*} val 对象的元素名
* @param {*} defaultVal 默认值
*/
getVal(val, defaultVal = '') {
return this.ctx.query[val] ? this.ctx.query[val] : defaultVal;
}
}
module.exports = BaseController;
注:1、以下部分如果是base.js内的方法将直接给出方法代码,不再给出其余的代码
2、所有方法都将依托于getVal和postVal
post获取具体参数的封装 app/controller/core/base.js
/**
* 获取post传值
* @param {*} val 对象的元素名
* @param {*} defaultVal 默认值
*/
postVal(val, defaultVal = '') {
return this.ctx.request.body[val] ? this.ctx.request.body[val] : defaultVal;
}
获取数字参数值
// app/controller/core/base.js
/**
* post方式获取数字信息
* @param {*} val 对象元素名
* @param {*} defaultVal 默认值
*/
async postInt(val, defaultVal = '') {
val = Number(await this.postVal(val, defaultVal));
return isNaN(val) === true ? 0 : val;
}
/**
* get方式获取数字信息
* @param {*} val 对象元素名
* @param {*} defaultVal 默认值
*/
async getInt(val, defaultVal = '') {
val = Number(await this.getVal(val, defaultVal));
return isNaN(val) === true ? 0 : val;
}
获取去掉html的字符串参数值
app/extend/helper.js新增代码
'use strict';
/**
* 清空字符串内的html标签
* @param {*} val 值
*/
exports.cleanHtml = val => {
return val.replace(/<.*?>/g, '');
};
app/controller/core/base.js新增代码
// app/controller/core/base.js
/**
* post方式获取不存在html标签的字符串
* @param {*} val 对象元素名
* @param {*} defaultVal 默认值
*/
async postStr(val, defaultVal = '') {
val = await this.postVal(val, defaultVal);
return this.ctx.helper.cleanHtml(val);
}
/**
* get方式获取不存在html标签的字符串
* @param {*} val 对象元素名
* @param {*} defaultVal 默认值
*/
async getStr(val, defaultVal = '') {
val = await this.getVal(val, defaultVal);
return this.ctx.helper.cleanHtml(val);
}
获取日期和日期时间格式的参数值
app/extend/helper.js新增代码
'use strict'
/**
* 校验是否是日期格式
* @param {*} dateStr yyyy-mm-dd字符串
*/
exports.checkDate = dateStr => {
const preg = /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/;
if (!preg.test(dateStr)) {
return false;
}
return true;
};
/**
* 校验日期时间格式
* @param {*} dateStr yyyy-mm-dd HH:ii:ss字符串
*/
exports.checkDateTime = dateStr => {
const preg = /^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))( (([01]\d)|(2[0-3])):[0-5]\d:[0-5]\d)?$/;
if (!preg.test(dateStr)) {
return false;
}
return true;
};
app/controller/core/base.js新增代码
// app/controller/core/base.js
/**
* get方式获取日期信息
* @param {*} val 对象元素名称
* @param {*} defaultVal 默认值
*/
async getDate(val, defaultVal = '') {
val = await this.getVal(val, defaultVal);
return this.ctx.helper.checkDate(val) ? val : '';
}
/**
* post方式获取日期信息
* @param {*} val 对象元素名称
* @param {*} defaultVal 默认值
*/
async postDate(val, defaultVal = '') {
val = await this.postVal(val, defaultVal);
return this.ctx.helper.checkDate(val) ? val : '';
}
/**
* get方式获取日期-时间格式信息
* @param {*} val 对象元素名称
* @param {*} defaultVal 默认值
*/
async getDateTime(val, defaultVal = '') {
val = await this.getVal(val, defaultVal);
return this.ctx.helper.checkDateTime(val) ? val : '';
}
/**
* post方式获取日期-时间格式信息
* @param {*} val 对象元素名称
* @param {*} defaultVal 默认值
*/
async postDateTime(val, defaultVal = '') {
val = await this.postVal(val, defaultVal);
return this.ctx.helper.checkDateTime(val) ? val : '';
}
获取json数据格式的参数值
app/controller/core/base.js新增代码
// app/controller/core/base.js
/**
* post方式获取json数据(尽量不要使用此格式)
* @param {*} val 对象元素名称
* @param {*} defaultVal 默认值
*/
async postJson(val, defaultVal = '') {
val = await this.postVal(val, defaultVal);
return JSON.parse(val);
}
/**
* get方式获取json数据(尽量不要使用此格式)
* @param {*} val 对象元素名称
* @param {*} defaultVal 默认值
*/
async getJson(val, defaultVal = '') {
val = await this.getVal(val, defaultVal);
return val ? JSON.parse(val) : '';
}
获取逗号隔开的数字参数值
app/extend/helper.js新增代码
'use strict'
/**
* 验证是否是逗号隔开的数字
* @param {*} val 逗号隔开的数字
*/
exports.isNumbers = val => {
const preg = /^\d+(,\d+)*$/;
if (!preg.test(val)) {
return false;
}
return true;
};
app/controller/core/base.js新增代码
// app/controller/core/base.js
/**
* get方式获取逗号隔开的数字
* @param {*} val 对象元素名称
* @param {*} defaultVal 默认值
*/
async getNumbers(val, defaultVal = '') {
val = await this.getVal(val, defaultVal);
if (this.ctx.helper.isNumbers(val) === true) {
return val;
}
return '';
}
/**
* post方式获取逗号隔开的数字
* @param {*} val 对象元素名称
* @param {*} defaultVal 默认值
*/
async postNumbers(val, defaultVal = '') {
val = await this.postVal(val, defaultVal);
if (this.ctx.helper.isNumbers(val) === true) {
return val;
}
return '';
}