【发布时间】:2021-05-16 19:32:20
【问题描述】:
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');
}
在控制器中:
async function listAverageRatingByOwner(req, res, next) {
const averageRatingByOwner = service.listAverageRatingByOwner();
console.log(averageRatingByOwner);
res.json();
}
我不确定为什么它不返回连接查询结果而是返回。
餐厅表: restaurant_id(主键) 餐厅名称(必填字符串) 美食(必填字符串) 地址(必填字符串) 评级(可选数字) owner_id(必填外键)
所有者表: owner_id(主键) 所有者名称(必填字符串) 电子邮件(必填字符串) 地址(必填)
【问题讨论】:
-
会不会是因为你没有等待这一行
const averageRatingByOwner = await service.listAverageRatingByOwner();?所以你不记录结果,而是记录 Promise
标签: postgresql express knex.js