Graphql和Mongoose:对于不可为空的字段,无法返回null

时间:2019-12-12 09:25:42

标签: mongoose apollo-server type-graphql

我使用type-graphql,Apollo服务器和Mongoose进行了简单的设置:

  @Query(() => User)
  async getUser(@Arg('id') id: string) {
    return UserModel.findById(id)
  }

此基本解析器会产生以下错误:“无法为不可为空的字段User.id返回null。”

有一个简单的解决方法:调用UserModel.findById(id).toObject()UserModel.findById(id).lean(),以便猫鼬生成一个简单的对象而不是一个文档。

我想了解为什么我每次从解析器返回内容时都必须添加“ lean”或“ toObject”。我在网上找到的将Mongoose和Graphql结合在一起的所有示例都未添加此样板代码。也许用一些无法理解Mongoose文档(依赖于“ get”和“ set”功能的代码)将graphql类型包装到reducer上?

0 个答案:

没有答案