创建另一个条目时,如何在表中插入新条目?

时间:2020-09-29 20:03:21

标签: mysql typescript objection.js

所以我要使用insertGraphAndFetch将req.body值插入到我的Restaurant表中。在我的餐厅模型中,我有一个具有HasOneRelation的menu对象。菜单表中有一个restaurantId,所以我想做的就是用刚创建的restaurantId创建一个菜单项。

export const createRestaurant: ExpressHandlerFn = async (req, res, next) => {
  try {
    const {
      name,
      description,
      address,
      cityId,
      priceTier,
      phoneNumber,
      schedule,
      tagIds,
    } = req.body;
    const { thumbnailImage, galleryImages } = req.files as MulterFields;
    const userId = req.session!.id;

    const createRestaurantTransaction = await Restaurant.transaction(async (trx) => {
      let newRestaurant = await Restaurant.query(trx).insertGraphAndFetch({
        name,
        description,
        priceTier,
        address,
        cityId,
        phoneNumber,
        schedule,
      });

这很好用,当我执行以下操作时,邮递员被卡在“发送请求”上:

newRestaurant.menu = await Menu.query().insert({
  restaurantId: newRestaurant.id,
});

对此有任何帮助,深表感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用$relatedQuery方法为刚创建的餐厅实例插入新的menu条目:

await newRestaurant
  .$relatedQuery('menu')
  .insert({ food: 'someFood' });