sequelize中的afterfind在包含时不起作用

时间:2019-09-24 05:36:50

标签: mysql node.js sequelize.js

我有两个模型Media和department_media。 department_media具有来自Media的外键。在将媒体URL传递给frontEnd之前,会将其转换为签名URL。我正在使用挂钩来实现该功能。

现在,我已经编写了一个afterHook来获取signedURL。这就是我所做的。谁可以帮我这个事?预先感谢

MediaModel.hook("afterFind", async (media) => {
 let descripJson = media.description;

 let hdUrl = descripJson.hd
 if (hdUrl) 
  descripJson.hd = await s3Auth(descripJson.hd)

 let imageUrl = descripJson.image
 if (imageUrl) 
  descripJson.image = await s3Auth(descripJson.image)  

 if (media.url) 
 let url = mediaDesp.url
 url = await s3Auth(url)

 media.description = descripJson
 media.url = url
 return media
 });

使用findAll或findOne调用它时有效。

但是当我使用include时,它不起作用。 有人可以帮我吗

  const query = {
    where: where,
    include: [{
    as: "media",
    model: MediaModel,
    separate: true
  }],
    limit,
    offset,
    order
  };
  let result = await this.model.paginate(query);

0 个答案:

没有答案