最近在使用nodejs来做服务端的数据接口服务开发数据接口的时候,在部分接口中需要使用到类似PHP中的foreach函数,于是就找了写资料,仿了一个函数。
// 将foreach函数封装到通用方法类中 command.js
exports.foreach = function(a,c){
if(!a || !c || typeof a != 'object' || typeof c != 'function') return false;
var n = c.length;
if(n==2){
for(var i in a){
if(c.call(null,i,a[i]) === false){
break;
}
}
}else if(n==1){
for(var i in a){
if(c.call(null,a[i]) === false){
break;
}
}
}else{
return false;
}
}
使用,首先引入通用方法文件
var command = require('./command.js');
var pool = mysql.createPool(config); //数据库处理
处理数据
exports.findAllUser = function(callback){
pool.getConnection(function(err, connection){
if(err){
callback(err);
}else{
var querySql = "select * from userTables";
connection.query(querySql, function(err, userList){
if(err || userList[0] == null){
callback('get user is fail...');
}else{
var newArray = {};
command.foreach(userList, function(i, e){
//判断目标key是否存在于数组中
if(!newArray.hasOwnProperty(e.user_id)){
newArray[e.user_id] = {}; //根据需要定义不同的类型
//objArray[e.user_id] = [];
}
//按需定义需要的数据结构
newArray[e.user_id]['userName'] = e.userName;
//删除多余的字段
delete e.userName;
//objArray[e.user_id]['uinfo'].push(e);
});
callback(null, newArray);
}
});
}
//释放数据库资源
connection.release();
});
}
// end....