无法从express中连接的sql表访问数据

问题描述 投票:0回答:1

我正在使用express和postgreSQL创建一个api,显示给定区域的餐厅评级,评论和美食。到目前为止,我已设法创建将在邮递员中显示sql表的路由和控制器。

但是,在尝试利用sql中连接表中的数据时,会出现问题。我知道如何使用JOIN在sql中指定我想要的数据,但我的问题是,如果我有这些数据,我如何从连接表中获取数据并使api发送带有cherrypicked数据的响应。这是我的表格:

第一个表是区域表,第二个表是餐馆表。它们共享一个area_id,我在第三个表中使用它是连接表。这是我在特别想要访问的联合表(右下角)中的城市名称...

这是我的快递控制器处理获取特定area_id的所有餐馆的请求:

const getRestaurantsByAreaId = (req, res, next) => {
  db.many(
    "SELECT * FROM restaurants JOIN areas ON areas.area_id = restaurants.area_id WHERE areas.area_id = $<area_id>",
    {
      area_id: req.params.area_id
    }
  )
    .then(restaurants => {
      res.status(200).send({
        area_id: req.params.area_id,
        name: '',
        total_restaurants: restaurants.length,
        restaurants
      });
    })
    .catch(err => console.log(err));
};

路由器端点:

areasRouter.get('/:area_id/restaurants', getRestaurantsByAreaId)

正如您所看到的,我已经对sql db进行了查询以创建连接表,但是在作为响应发送的对象中(在.then之后)我有'name'的键 - 这里的值需要是来自联合表的'曼彻斯特市中心'......但是经过多次尝试后我不知道怎么做

在邮递员中,我请求查看area_id'1'中的餐馆:http://localhost:9090/api/areas/1/restaurants

以下是从上面的代码接收客户端的内容..

所以一切都与最后一点分开,从连接表中获取该城市名称。

希望这不是一个noob问题,但我是一个菜鸟嘿嘿。感谢任何回复。

javascript postgresql express pg-promise
1个回答
0
投票

弄清楚了。很简单的解决方案,不知道为什么我错过了这个......

name:restaurants [0] .name

© www.soinside.com 2019 - 2024. All rights reserved.