如何使用Parcel.js捆绑器加载.graphl文件 API_v1.ts schema.graphql:导入scema时获得的值错误我的配置:编辑主要解析器架构

根据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时获得的值

beautified version

{"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函数的结果类型相同

但是我仍然不知道如何使用它:(

hrslhjbgfdk 回答:如何使用Parcel.js捆绑器加载.graphl文件 API_v1.ts schema.graphql:导入scema时获得的值错误我的配置:编辑主要解析器架构

问题出在解析器文件中

我忘了将查询包装在查询容器中

如果有人有类似问题

主要

import { ApolloServer } from 'apollo-server-express'
import typeDefs from './schema.graphql'
import * as resolvers from './resolvers'

const server = new ApolloServer({
  typeDefs,resolvers,})

解析器

export const Query = {
  ping: () => 'PONG',}

架构

type Query {
  ping: String!
}
本文链接:https://www.f2er.com/2960508.html

大家都在问