Node.js MongoDB查询通过节点返回可见结果,但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结果可见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尝试了类似的方法,调用它在浏览器上不返回任何内容,但已成功登录到控制台: 异步函数{ 返回等待客户
谢谢你的帮助 这很可能是因为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}'的餐厅中选择*;或者跟随他们的向导客户。查询,,哦,我抄错了。谢谢你的提醒!然而,我仍然得到问题的结果登录到控制台,但没有任何输出到浏览器