Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB查询通过节点返回可见结果,但Postgres没有?_Node.js_Mongodb_Postgresql_Rest - Fatal编程技术网

Node.js MongoDB查询通过节点返回可见结果,但Postgres没有?

Node.js MongoDB查询通过节点返回可见结果,但Postgres没有?,node.js,mongodb,postgresql,rest,Node.js,Mongodb,Postgresql,Rest,我一直在使用mongoose在节点中与mongoDB合作。当向路由(例如localhost:7000/餐厅)发出GET请求并显示一个充满匹配对象的数组时,会对mongoose进行以下查询 异步函数{ 返回this.Restaurants.find{$or:[{city:somecity},{邮政编码:somepostalcode}]}。然后结果=>{ 返回结果; } } 但是,我使用postgres尝试了类似的方法,调用它在浏览器上不返回任何内容,但已成功登录到控制台: 异步函数{ 返回等待客户

我一直在使用mongoose在节点中与mongoDB合作。当向路由(例如localhost:7000/餐厅)发出GET请求并显示一个充满匹配对象的数组时,会对mongoose进行以下查询

异步函数{ 返回this.Restaurants.find{$or:[{city:somecity},{邮政编码:somepostalcode}]}。然后结果=>{ 返回结果; } } 但是,我使用postgres尝试了类似的方法,调用它在浏览器上不返回任何内容,但已成功登录到控制台:

异步函数{ 返回等待客户端。查询'SELECT*FROM city='${somecity}'或邮政编码='${somepostalcode}';`,err,res=>{ console.logres.rows; 返回res.rows; } } 如果它们都返回相同类型的对象,为什么会发生这种情况?有没有办法让postgres结果可见


谢谢你的帮助

这很可能是因为postgres API是基于回调的。您需要在promise中包装回调,并在resolve中返回查询响应。将代码更新为以下内容应该会有所帮助:

async func(){
  return new Promise((resolve, reject) => {
    client.query(`SELECT * FROM restaurants WHERE city = '${somecity}' OR postal_code = '${somepostalcode}';`, (err, res) => {
      if(err) {
        return reject(err)
      }
      
      return resolve(res.rows);
    })
  })
}

对PostgreSQL不太确定,但您的查询语句似乎不正确。。。它可能试图查询city='somecity'或邮政编码:'somepostalcode'。从城市='${somecity}'或邮政编码='${somepostalcode}'的餐厅中选择*;或者跟随他们的向导客户。查询,,哦,我抄错了。谢谢你的提醒!然而,我仍然得到问题的结果登录到控制台,但没有任何输出到浏览器