常用技术点备忘

人老了,记性不好了,而且技术日新月异,语法改变的也太快了,需要做一些备忘。

数据库查询,返回结果的判断:

如果你用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形式,便于通过字符形式比较大小

你可能感兴趣的:(常用技术点备忘)