微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bookshelf.js 与相关的 TypeScript 错误

如何解决Bookshelf.js 与相关的 TypeScript 错误

因此,在我的应用程序中,我有相互关联的类别文章。起初,我检索所有类别,每个类别中都有文章。问题是我想通过 userId 过滤其中的 categoriesarticles 但我不知道该怎么做,因为我正在使用 TypeScript 并得到错误

const articlesInCategories = (await (await ArticleCategory.fetchAll())
    .query((qb: QueryBuilder) => {
        qb.innerJoin(Table.ARTICLE_CATEGORY_RELATION,'article_category_relation.category_id','article_category.id' );
        qb.innerJoin(Table.ARTICLE,'article.id','article_category_relation.article_id');

        // Next condition is only for Categories not for Articles inside it
        if (roleId == Role.manager) {
            qb.where('user_id',userId);
        }

        qb.orderBy('id','desc');
      })
      .fetch({
          withRelated: [{'articles': function (qb: QueryBuilder) => qb.where('user_id',userId)}]
      }));

例如,如果 userId1,则只想获取那些 categories,其中包含 id 为 {{1} 的用户撰写的文章 }.此外,并非所有文章,而是仅由 ID 为 1用户撰写。

我在 1 附近有 TS 错误withRelated

在这种情况下,您能否帮助我使用 TypeScript 或建议任何其他方法来实现我想要的?

解决方法

好吧,那是错误的方法。如果我执行以下操作,效果会很棒:

const articlesInCategories = await new ArticleCategory().query((qb: QueryBuilder) => {
    .query((qb: QueryBuilder) => {
        qb.innerJoin(Table.ARTICLE_CATEGORY_RELATION,'article_category_relation.category_id','article_category.id' );
        qb.innerJoin(Table.ARTICLE,'article.id','article_category_relation.article_id');

        if (roleId == Role.manager) {
            qb.where('user_id',userId);
        }

        qb.orderBy('id','desc');
      })
      .fetch({
          withRelated: [{ 'articles': (qb: QueryBuilder) => qb.where('user_id',userId) }]
      }));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。