错误:正文必须是字符串。使用 Type-graphql 和 apollo-server-express 时收到: resolvers: [[function HelloResolver]], vali
Posted
技术标签:
【中文标题】错误:正文必须是字符串。使用 Type-graphql 和 apollo-server-express 时收到: resolvers: [[function HelloResolver]], validate: false【英文标题】:Error: Body must be a string. Received: resolvers: [[function HelloResolver]], validate: false when using Type-graphql and apollo-server-express错误:正文必须是字符串。使用 Type-graphql 和 apollo-server-express 时收到: resolvers: [[function HelloResolver]], validate: false 【发布时间】:2021-09-13 17:11:24 【问题描述】:我一直在关注这个full-stack tutorial by Ben Awad 当他向架构添加解析器时,一切都很顺利,但是当我尝试完全相同的代码时,我得到了上面的错误。我正在使用带有 apollo-server-express 版本 2.25.2 的 graphql 15.5.1 和 type-graphql 1.1.1。我的代码如下所示:
import Query, Resolver from "type-graphql";
@Resolver()
export class HelloResolver
@Query(() => Number)
hello()
return 5;
import ApolloServer from "apollo-server-express";
import buildSchema from "graphql";
import HelloResolver from "./resolvers/hello";
const express = require('express');
const PORT : number = Number(process.env.PORT) || 3000;
const main = async () =>
const apollo = new ApolloServer(
schema: await buildSchema(
// ERROR DUE TO LINE BELOW
resolvers: [HelloResolver],
validate: false,
),
);
apollo.applyMiddleware( app );
app.listen(PORT, () =>
console.log(`Listening on port $PORT...`);
);
main().catch((e) =>
console.error(e);
);
【问题讨论】:
【参考方案1】:import buildSchema from "graphql";
应该是
import buildSchema from "type-graphql";
你可以在the same code linked in the video description看到。
【讨论】:
以上是关于错误:正文必须是字符串。使用 Type-graphql 和 apollo-server-express 时收到: resolvers: [[function HelloResolver]], vali的主要内容,如果未能解决你的问题,请参考以下文章
oauth2错误AADSTS90014:请求正文必须包含以下参数:'grant_type'
致命错误:非抽象方法 NF_Handlers_FieldsetRepeater::isFieldsetData() 必须包含正文
PlayFramework:以字符串形式获取原始请求 xml 正文
在错误情况下从 WebClient 获取响应正文的正确方法是啥?