我是这个node.js和postgres的新手。我正在执行2个查询(选择),我必须将这2个查询输出组合成一个结果。此外,我必须使第一个结果首先出现,然后第二个查询..我有以下代码,但我没有达到要求。此外,我不确定我的代码是否正确..如果你有其他想法...
我的代码:
client.query("select * from tn_village where level3 ILIKE '%"+villagename+"%' OR level4 ILIKE '%"+villagename+"%' OR level5 ILIKE '%"+villagename+"%' OR level6 ILIKE '%"+villagename+"%' OR level7 ILIKE '%"+villagename+"%' OR level8 ILIKE '%"+villagename+"%' OR level9 ILIKE '%"+villagename+"%'",function(err,result)
{
client.query("select * from tn_village where level3 ILIKE '%"+village+"%' OR level4 ILIKE '%"+village+"%' OR level5 ILIKE '%"+village+"%' OR level6 ILIKE '%"+village+"%' OR level7 ILIKE '%"+village+"%' OR level8 ILIKE '%"+village+"%' OR level9 ILIKE '%"+village+"%'" ,function(err,result1)
{
res.send(result1);
});
});
如何将结果和result1组合到一个输出中...帮我解决这个问题..提前谢谢..
编辑:
client.query("select * from tn_village where level3 ILIKE '%"+villagename+"%' OR level4 ILIKE '%"+villagename+"%' OR level5 ILIKE '%"+villagename+"%' OR level6 ILIKE '%"+villagename+"%' OR level7 ILIKE '%"+villagename+"%' OR level8 ILIKE '%"+villagename+"%' OR level9 ILIKE '%"+villagename+"%' ",function(err,result)
{
client.query("select * from tn_village where level3 ILIKE '%"+village+"%' OR level4 ILIKE '%"+village+"%' OR level5 ILIKE '%"+village+"%' OR level6 ILIKE '%"+village+"%' OR level7 ILIKE '%"+village+"%' OR level8 ILIKE '%"+village+"%' OR level9 ILIKE '%"+village+"%'" ,function(err,result1)
{
var ret = {
result: result,----------->if i put result1 here only the 2nd query output is showing. If i put result only 1st query output is shown..
result1: result1
}
res.send(ret);
//res.send(result1);
});
});
});
此外,我希望我怀疑,您的代码是否会首先显示第一个查询的输出,然后是第二个查询输出?
答案 0 :(得分:1)
好吧,只需按照你的布局方式(尽管我甚至在节点中更喜欢承诺聚合多个异步调用):
client.query("select ...",function(err,result) {
client.query("select ..." ,function(err,result1) {
var ret = {
result: result,
result1: result1
}
res.send(ret);
});
});
这是我能想到的最简单的例子,向您展示这应该是多么容易。现在,如果您正在考虑某种循环结果和result1将它们组合在一起等,或者如果您想将两个数组连接成一个等等,那么所有这些都不是你的问题所清楚但是很容易做到。
如果这完全澄清,请告诉我。本质上,“结果”的值仍然可以在内部回调中使用,因此您可以在res.send中使用它。
PS - 不一定需要嵌套的嵌套调用有点狡猾,promises或其他回调聚合器在这里会有所帮助。