使用NodeJS,尝试使用存储在对象模型中的其他值更新对象。该对象包含一个数组,该数组的值用于从MariaDB查询一组其他值,然后更新原始对象。 节点依次迭代所有数组值,然后依次迭代每个db调用,然后返回对象,但没有更新。
local object = {
"type":null,
"id":null,
"code":null,
"title":null,
"description":null,
"attrs":[
{
"attr_id":null,
"attr_data_type":null,
"attr_control_type":null,
"fixed_list":null,
"attr_fixed_list_values":[
{
"attr_id":null,
"value_id:":null,
"fixed_list_value":null
}
],
"attr_name":null,
"attr_value":null
}
],
"mv_attrs":[
{
"attr_id":null,
"attr_data_type":null,
"attr_name":null,
"attr_values":[]
}
]
};
回调不起作用。嵌套的回调不起作用。 Q库似乎不是一个选择。
// Passed in object is 'lo' (i.e. local object)
//iterate through each object attribute
for(var a = 0; a < Object.keys(lo.attrs).length-1; a++) {
//get fixed value list for each attribute
if (lo.attrs[a].fixed_list === 'Y') {
const sql = 'select aflv.attr_id, aflv.value_id, aflv.attr_value as fixed_list_value from attr_fixed_list_values aflv where aflv.attr_id = ' + lo.attrs[a].attr_id;
connection.query(sql, function(err, rows) {
if (err) {
throw err;
} else {
lo.attrs[a]["attr_fixed_list_values"]=rows;
}
})
}
}
return (lo); //at this point, lo has been updated
目标是填充固定值数组
"attr_fixed_list_values":[
{
"attr_id":null,
"value_id:":null,
"fixed_list_value":null
}
],
attrs数组中的每个属性。
答案 0 :(得分:-1)
本地对象= {“类型”:null,“ id”:null,“代码”:null,“标题”:null,“ description”:null,“ attrs”:[{“ attr_id”:null,“ attr_data_type”:null,“ attr_control_type”:null,“ fixed_list”:null,“ attr_fixed_list_values”:[{“ attr_id”:null,“ value_id:”:null,“ fixed_list_value”:null}],“ attr_name”:null, “ attr_value”:null}],“ mv_attrs”:[{“ attr_id”:null,“ attr_data_type”:null,“ attr_name”:null,“ attr_values”:[]}]};
回调不起作用。嵌套的回调不起作用。 Q库似乎不是一个选择。
//传入的对象是“ lo”(即本地对象)
///遍历每个对象的属性for(var a = 0; a //获取每个属性的固定值列表,如果(lo.attrs [a] .fixed_list ==='Y'){ }
} return(lo)const sql = 'select aflv.attr_id, aflv.value_id, aflv.attr_value as fixed_list_value from attr_fixed_list_values aflv where aflv.attr_id = ' + lo.attrs[a].attr_id;
connection.query(sql, function(err, rows) {
if (err) {
throw err;
} else {
lo.attrs[a]["attr_fixed_list_values"]=rows;
}
})