Nuxt + GraphQL (Apollo) 上传文件

Posted

技术标签:

【中文标题】Nuxt + GraphQL (Apollo) 上传文件【英文标题】:Nuxt + GraphQL (Apollo) upload files 【发布时间】:2021-12-10 12:17:16 【问题描述】:

我目前正在使用@nuxt/apollo 模块。此模块是否适用于文件上传或我需要将 HTTPLink 更改为另一个?

【问题讨论】:

这能回答你的问题吗? nuxt 2.x with apollo 3 @kissu,谢谢,但正如您所见,这也是我的问题))所以,它甚至没有解决我的问题)但无论如何感谢您的光临! 【参考方案1】:

在深入检查了库和我的堆栈之后,我终于找到了问题所在。 根据最近的文档,我已经对前端和后端进行了非常简单的设置(自从我上次与他们合作以来,它们发生了巨大的变化),我发现@nuxt/apollo 显然支持开箱即用的文件上传(感谢Guillaume Chau)

问题出在我的后端,我必须将 apollo-server-express"^2.21.0" 更新为 "^3.4.0"(我正在关注文档,但我的版本较旧,并且不支持文件上传)并按照对于最近的文档,我已经不得不使用 graphqlUploadExpress 中间件并首先像这样启动 GraphQL 服务器:

const apolloServer = new ApolloServer(
    schema: schema,
    debug: true,
    context: contextHook
)

export const applyGraphQLMiddleware = async ( server: app :  server: Application ) => 
    app.use(graphqlUploadExpress()); // adding this middleware
    await apolloServer.start(); // starting the GraphQL Server 
    apolloServer.applyMiddleware( app ); // only after that I am applying the express server as a middleware

现在文件上传似乎可以正常工作了

以防万一,您可以在 docs 中找到 Schema 和 Resolvers 的整个设置

【讨论】:

以上是关于Nuxt + GraphQL (Apollo) 上传文件的主要内容,如果未能解决你的问题,请参考以下文章

如何调试 nuxt-apollo 服务器端 graphql 请求

使用 nuxt-apollo 时如何使用 GraphQL 查询?

如何使用 Nuxt ServerMiddleware 和 Apollo GraphQL 处理 301 重定向

nuxt.js + Apollo Client:如何禁用缓存?

可以结合 apollo 查询(在 nuxt 内?)

使用 GraphQL (Nuxt) 访问嵌套节点