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();
}