'Got Object' GraphQL 模式定义中的异常
'Got Object' exception in GraphQL schema definition
我定义的schema是这样的:
import { gql } from 'apollo-server';
export default gql`
type ProjectEntry {
ID: Int!
Name: String
}
# The schema allows the following Queries:
type Query {
project(id: Int!): ProjectEntry
projects: [ProjectEntry]
}
`;
最后我把它们放在一起:
const typeDefs = require('./data/typedefs');
const resolvers = require('./data/resolvers ');
const server = new ApolloServer({ typeDefs, resolvers });
但是当我尝试 运行 应用程序时,出现此错误:Error: typeDef array must contain only strings and functions, got object
这个错误是从哪里来的?
如果您使用 export default 'someString'
,在幕后,exports
值的结果值最终为 { default: 'someString' }
。这就是允许您同时声明默认导出和命名导出的原因。导入您的模块
// like this
const typeDefs = require('./data/typedefs').default
// or like this
import typedefs from './data/typedefs'
我有完全相同的错误。
解决方案:
const { typeDefs } = require('./data/typedefs');
const { resolvers } = require('./data/resolvers ');
需要括号,因为我们不导出默认值。
在前端:
export default Component -> import Component from "..."
export const Component -> import { Component } from "..."
我定义的schema是这样的:
import { gql } from 'apollo-server';
export default gql`
type ProjectEntry {
ID: Int!
Name: String
}
# The schema allows the following Queries:
type Query {
project(id: Int!): ProjectEntry
projects: [ProjectEntry]
}
`;
最后我把它们放在一起:
const typeDefs = require('./data/typedefs');
const resolvers = require('./data/resolvers ');
const server = new ApolloServer({ typeDefs, resolvers });
但是当我尝试 运行 应用程序时,出现此错误:Error: typeDef array must contain only strings and functions, got object
这个错误是从哪里来的?
如果您使用 export default 'someString'
,在幕后,exports
值的结果值最终为 { default: 'someString' }
。这就是允许您同时声明默认导出和命名导出的原因。导入您的模块
// like this
const typeDefs = require('./data/typedefs').default
// or like this
import typedefs from './data/typedefs'
我有完全相同的错误。 解决方案:
const { typeDefs } = require('./data/typedefs');
const { resolvers } = require('./data/resolvers ');
需要括号,因为我们不导出默认值。 在前端:
export default Component -> import Component from "..."
export const Component -> import { Component } from "..."