[英]postgres +node.js query combine
我是这个node.js和postgres的新手。我正在执行2个query(选择),我必须将这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);
});
});
我如何将result和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);
});
});
});
我也想让我怀疑,您的代码是否将首先显示第一查询的输出,然后显示第二查询的输出?
好吧,只需按照您的布局方式进行即可(尽管我甚至希望在节点中使用Promise来聚合多个异步调用):
client.query("select ...",function(err,result) {
client.query("select ..." ,function(err,result1) {
var ret = {
result: result,
result1: result1
}
res.send(ret);
});
});
这是我想到的最简单的示例,它向您展示了这应该是多么容易。 现在,例如,如果您正在考虑将result和result1进行某种形式的循环,以将它们组合/合并在一起,等等,或者如果您想将两个数组连接成一个等,那么您的问题并不清楚,但是很容易做到。
让我知道是否可以澄清。 本质上,“结果”的值在内部回调中仍然对您可用,因此您可以在res.send中使用它。
PS-不一定需要嵌套的嵌套调用有点麻烦,promise或其他回调聚合器在这里会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.