如何在Bookshelf JS中自定义响应对象?

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

我想将自定义属性添加到标准Bookshelf.js响应对象。在这种情况下,目标是fetchAll()区域并将属性link附加到每个区域。链接的价值只是/some/api/route/${region.id}

我相信有两种方法可以实现这一点:(1)修改为Regions模型,包含一些函数getRegionLink()来生成所需的值;或(2)迭代并修改响应对象。我认为(1)是首选,但我可以想象何时(2)可能是必要的。

在这种情况下,我无法弄清楚如何做(2)。 Bookshelf.js docs声明_.each()是可用的,尽管lodash docs每个都赞成forEach。但是,以下内容没有按预期工作。发生一些错误。在相关的说明中,err对象在Postman上记录为空。

地区服务

Region.forge()
    .fetchAll()
    .then(regions => {
      _.forEach(regions, region => {
        region.link = `${API_BASE}/location/regions/v1/${region.id}`;
      });
      res.json(regions);
    .catch(err => {
      res.status(404).json(err);
    });
javascript express bookshelf.js
1个回答
1
投票

这个问题的核心是"virtuals" plugin for Bookshelf回答。相关文章:Bookshelf.js set attribute not in database

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