阿波罗服务器 2.0。在文档中找不到类型“上传”
Posted
技术标签:
【中文标题】阿波罗服务器 2.0。在文档中找不到类型“上传”【英文标题】:Apollo server 2.0. Type "Upload" not found in document 【发布时间】:2018-12-17 03:58:50 【问题描述】:如何复制:
server.js
const ApolloServer, makeExecutableSchema, gql = require('apollo-server');
const typeDefs = gql`
type Mutation
uploadAvatar(upload: Upload!): String!
`;
const resolvers =
Mutation:
uploadAvatar(root, args, context, info)
return 'test';
;
const schema = makeExecutableSchema( typeDefs, resolvers );
const server = new ApolloServer(
schema,
);
server.listen().then(( url ) =>
console.log(`???? Server ready at $url`);
);
package.json
"dependencies":
"apollo-server": "^2.0.0-rc.6",
"graphql": "^0.13.2"
在节点 server.js 上,我们收到以下错误:
在文档中找不到类型“上传”。
鉴于最新版本的阿波罗服务器,我应该在查询中添加任何其他内容吗?根据this 教程和我目前不记得的一些其他来源,除了写上传之外不需要做任何事情,它应该可以正常工作。我错过了什么吗?
【问题讨论】:
它似乎应该可以正常工作:``` Apollo Server 2.0 自动将 Upload 标量添加到模式中,因此应该删除模式中任何现有的标量 Upload 声明。 ``` 【参考方案1】:在 apollo 文档的示例中,我有几种方法解决了这个问题:
https://www.apollographql.com/docs/guides/file-uploads.html
你可以看到他没有使用makeExecutableSchema
,而是将解析器和模式传递给了阿波罗服务器,这停止了错误:
在文档中找不到类型“上传”。
如果你想使用makeExecutableSchema
然后导入标量
const typeDefs = gql`
scalar Upload
type Mutation
uploadAvatar(upload: Upload!): String!
type Query
ping: String
`;
https://github.com/jaydenseric/apollo-upload-examples/blob/master/api/schema.mjs
如果您查看 at 博客文章的一些示例源代码,您会发现他使用了一个标量
没有自动添加的原因是
流 文件名 模仿类型 编码标量上传 Apollo Server 自动添加到架构中的 Upload 类型解析包含以下内容的对象:
更新: Apollo 更清楚地表明,当您使用 makeExecutableSchema 时,您需要定义标量才能使其工作
在使用 makeExecutableSchema 手动设置模式并使用模式参数传递给 ApolloServer 构造函数的情况下,将上传标量添加到类型定义并上传到解析器
https://www.apollographql.com/docs/guides/file-uploads.html#File-upload-with-schema-param
【讨论】:
以上是关于阿波罗服务器 2.0。在文档中找不到类型“上传”的主要内容,如果未能解决你的问题,请参考以下文章
在 .Net Core 3.1 的 2.0 版中找不到 MahApps ToggleSwitch
在带有 Netbeans 7.3 的诺基亚 SDK 2.0 中找不到 JRE
Ghostdriver 1.2.1 + PhantomJS 2.0 + 最新的 Selenium 在 Java 中找不到变量错误
.Net Core 3.1 的 2.0 版中找不到 MahApps ToggleSwitch 属性