javascript - NestJs:确保你的班级用合适的装饰器装饰
问题描述
我graphql-request
用作 GraphQL 客户端来查询无头 CMS 以获取内容、修改并返回到原始请求/查询。无头 cms 单独托管仅供参考。
我有以下代码:
@Query(returns => BlogPost)
async test() {
const endpoint = 'https://contentxx.com/api/content/project-dev/graphql'
const graphQLClient = new GraphQLClient(endpoint, {
headers: {
authorization: 'Bearer xxxxxxx',
},
})
const query = gql`
{
findContentContent(id: "9f5dde89-7f9b-4b9c-8669-1f0425b2b55d") {
id
flatData {
body
slug
subtitle
title
}
}
}`
return await graphQLClient.request(query);
}
BlogPost
是具有以下类型的模型:
import { Field, ObjectType } from '@nestjs/graphql';
import { BaseModel } from './base.model';
import FlatDateType from '../resolvers/blogPost/types/flatDatatype.type';
@ObjectType()
export class BlogPost extends BaseModel {
@Field({ nullable: true })
id!: string;
@Field((type) => FlatDateType)
flatData: FlatDateType;
}
并FlatDateType
具有以下代码
export default class FlatDateType {
body: string;
slug: string;
subtitle: string;
title: string;
}
它抛出以下异常:
错误:无法确定“flatData”的 GraphQL 输出类型。确保您的班级使用合适的装饰器进行装饰。
这里缺少什么?
解决方案
FlatDataType
当没有关于它的信息传递给 graphql 解析器时,您的 graphql 服务器应该如何理解类型?您还需要将 graphql 装饰器添加到其中。@ObjectType()
,@Field()
等。
推荐阅读
- angular - 如何在 Angular 中的 patchValue 时防止/停止 valuechanges 事件
- html - 如何防止我的粘性导航栏在我的 div 元素下移动?
- javascript - 在 JavaScript 中单击一个按钮并在每次单击时获得不同的颜色
- python - 如何在 numpy 矩阵中转置数组?
- c# - 如何将 Xamarin.Plugin.ImageEdit 与用户界面集成?
- git - 我怎样才能在主人之前撞到一个分支?
- python-3.x - 查找重复项并创建一列指出熊猫中的重复项
- html - 我可以使用 react w/oa 服务器并作为 js 文件吗?
- c - 文件传输/将二进制数据写入 Unix 上 C/C++ 中的 TCP 套接字连接
- python - 尝试将字符串插入字符串时,Python f-string name“blabla is not defined”错误