根据parcel documentation, 我应该能够加载 .graphql 文件。
当我使用宗地导入架构时,我得到了一个对象,但是它不适用于apollo-server-express
API_v1.ts
import typeDefs from './schema.graphql'
import * as resolvers from './resolvers'
const server = new ApolloServer({
typeDefs,resolvers,})
schema.graphql:
type Query {
ping: String!
}
导入scema时获得的值
{"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Query"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","value":"ping"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","value":"String"}}},"directives":[]}]}],"loc":{"start":0,"end":31}}
错误
TypeError: Cannot read property 'parse' of undefined
at Object.parcelRequire.routes/api/v1/index.ts../schema.graphql (/dist/server.js:222:31)
at newRequire (/dist/server.js:47:24)
at localRequire (/dist/server.js:53:14)
at Object.parcelRequire.routes/api/index.ts../v1 (/dist/server.js:240:14)
...
我的配置:
- NodeJS v12
- 包裹 v1.12.4
- apollo-server-express v2.9.12
编辑
导入的数据似乎具有DocumentNode
(在graphql/language/ast.d.ts中定义)的类型
export interface DocumentNode {
readonly kind: 'Document';
readonly loc?: Location;
readonly definitions: ReadonlyArray<DefinitionNode>;
}
与gql函数的结果类型相同
但是我仍然不知道如何使用它:(