人老了,记性不好了,而且技术日新月异,语法改变的也太快了,需要做一些备忘。
数据库查询,返回结果的判断:
如果你用find(),去做查询,返回的结果集是result, err 返回的是错误,但查询结果为空,并不是err!当返回结果为空时, result = []; 所以判断查询结果是否为空时,应该写为:
if(result[0]){//返回的数组第一个有值,才说明有真正的有意义的记录返回
}
else{//这里表示,返回的查询结果为空,也就是没有符合条件的记录
}
判断元素是否为空
isObjectEmpty( varname);
一般用于数组、集合、变量未附值的判断;
脚本的调用
var cmd="/home/vchannel/shell/check_sys.sh disk";
callfile.exec(cmd,function(err,stdout,stderr)
{
if(err) {
console.log('执行脚本出错:',err); }
else { //脚本执行成功
var ret = eval(stdout);//将返回的字符串信息,转化为数组形式
res.status(200).json(ret);
}
});
其中,check_sys.sh是脚本文件,disk是传递给脚本文件的参数;
返回的数据信息是数组形式的字符串,通过 eval()可转换成数组;
eval(string)
eval(string)函数可计算某个字符串,并执行其中的JavaScript代码。
即string 的内容可以是一个计算公式或代码,eval()可以获得其执行的结果。
参数:string;描述:要计算的字符串,其中含有要计算的JavaScript表达式或要执行的语句。
日期的格式化字符串生成
var set_d = new Date(); //获得当前日期
v = {};
set_d.setDate(d.getDate() + i); //日期+几天
v.y = set_d.getFullYear();
v.m = set_d.getMonth() + 1;
v.d = set_d.getDate();
v.datestr = sprintf("%d-%02d-%02d",v.y, v.m, v.d); //格式化成2016-05-01形式,便于通过字符形式比较大小
网友评论