Postgresql Knex不返回join SQL查询
在控制器中:Postgresql Knex不返回join SQL查询,postgresql,express,knex.js,Postgresql,Express,Knex.js,在控制器中: function list() { return knex('restaurants') .join('owners', 'restaurants.owner_id', 'owners.owner_id') .select('restaurants.restaurant_name', 'owners.owner.name', 'owners.email') .orderBy('owners.owner_name'); } function listAv
function list() {
return knex('restaurants')
.join('owners', 'restaurants.owner_id', 'owners.owner_id')
.select('restaurants.restaurant_name', 'owners.owner.name', 'owners.email')
.orderBy('owners.owner_name');
}
function listAverageRatingByOwner() {
return knex('restaurants')
.join('owners', 'restaurants.owner_id', 'owners.owner_id')
.select('owners.owner_name')
.avg('restaurants.ratings');
}
我不确定为什么它不返回连接查询结果,而是返回该结果
餐厅餐桌:
餐厅id(主键)
餐厅名称(必填字符串)
烹饪(必需字符串)
地址(必需字符串)
额定值(可选数字)
所有者id(必需的外键)
所有者表:
所有者id(主键)
所有者名称(必需字符串)
电子邮件(必填字符串)
地址(必需字符串)
Knex查询生成器返回一个
承诺
,因此您应该等待它以获得结果集
//控制器
异步函数listAverageRatingByOwner(req、res、next){
const averageRatingByOwner=等待服务。listAverageRatingByOwner();
// ---------------------------^
console.log(averageRatingByOwner);
res.json();
}
可能是因为您没有等待此行const averageRatingByOwner=wait service.listAverageRatingByOwner()代码>?所以你不记录结果,而是记录承诺
async function listAverageRatingByOwner(req, res, next) {
const averageRatingByOwner = service.listAverageRatingByOwner();
console.log(averageRatingByOwner);
res.json();
}