【发布时间】:2020-09-18 04:07:25
【问题描述】:
我想使用 TypeGraphQL 使用 graphql 设置一个新的 Next JS 项目。我认为跳过独立服务器并使用 Next JS 提供的 API 路由是个好主意。 Here 是我受到启发的一个例子。不幸的是,我无法启动并运行 graphql。
下一个 JS 启动时没有错误,但在向 api/graphql 发送请求后立即抛出一个错误
TypeError: resolver is not a function
at apiResolver (/home/vavra/Projects/project-united/node_modules/next/dist/next-server/server/api-utils.js:6:7)
at DevServer.handleApiRequest (/home/vavra/Projects/project-united/node_modules/next/dist/next-server/server/next-server.js:43:427)
at async Object.fn (/home/vavra/Projects/project-united/node_modules/next/dist/next-server/server/next-server.js:35:764)
at async Router.execute (/home/vavra/Projects/project-united/node_modules/next/dist/next-server/server/router.js:28:28)
at async DevServer.run (/home/vavra/Projects/project-united/node_modules/next/dist/next-server/server/next-server.js:44:494)
at async DevServer.handleRequest (/home/vavra/Projects/project-united/node_modules/next/dist/next-server/server/next-server.js:13:133)
这是我的文件 src/pages/api/graphql
import { Resolver, Query } from "type-graphql";
import { ApolloServer } from "apollo-server-micro";
import { buildSchema } from "type-graphql";
import "reflect-metadata";
@Resolver()
class HelloResolver {
@Query(() => String)
hello() {
return "hello";
}
}
export const config = {
api: {
bodyParser: false,
},
};
export default (async () => {
const schema = await buildSchema({
resolvers: [HelloResolver],
});
const apolloServer = new ApolloServer({ schema });
return apolloServer.createHandler({ path: "/api/graphql" });
})();
有什么帮助吗?
【问题讨论】:
-
你解决了吗?我也在尝试在 NextJS 应用程序中设置 TypeGraphQL 并遇到同样的问题。我想知道我是否需要破解我的下一个应用程序才能使用 express (bleh)。
-
@CodeAndCats 不走运,我没有找到任何解决方案,所以我用 Express 运行我的服务器。
标签: next.js apollo-server typegraphql