如何使用MongoDB类型参数在nestjs-graphql中定义args?

时间:2019-11-18 11:35:51

标签: nestjs type-graphql

我的解析器中有以下查询:

    import { Args, Query } from '@nestjs/graphql';
    import { Collection, FilterQuery, FindOneOptions } from 'mongodb';

    ...

    @Query(returns => [Recipe])
    async recipes(
        @Args() query:   FilterQuery<Collection>,
        @Args() options: FindOneOptions
    ):  Promise<Recipe[]> {
        return this.recipeService.findAll();
    }

我试图在查询配方时允许使用queryoptions的参数。

我遇到的两个问题如下:

  • 按原样运行时,它告诉我:
      

    错误:您需要为RecipeResolver#recipes参数#1提供显式类型!

  • 否则,如果我尝试将类型作为参数传递给@Args声明式,就像@Args({type: () => FilterQuery}) query: FilterQuery<Collection>这样,我得到:
      

    “ FilterQuery”仅引用一种类型,但在此处被用作值。

1 个答案:

答案 0 :(得分:1)

您需要创建一个看起来像您尝试使用的FilterQueryFindOneOptions的类,但是在其属性上使用type-graphql类型修饰符,以便GraphQL服务器可以知道如何期待FilterQueryFindOneOptions的格式。