标签: graphql-js

GraphQL 接口:[interface] 需要“fieldname”,但 [type] 不提供它

我有以下理由。我调用网上商店的多个 API。每个网上商店都有自己的 GraphQLObjectType,如下面的代码所示。

我当前类型的代码:

// Amazon
const AmazonType = new GraphQLObjectType({
    name: 'amazon',
      fields: () => ( {
        isbn: { type : GraphQLString},
        title: { type: GraphQLString },
        author: { type: GraphQLString},
        publisher: { type: GraphQLString},
    })
});

// itunes
const ItunesType = new GraphQLObjectType({
    name: 'itunes',
    fields: () => ( {
        isbn: { type: GraphQLString },
        title: { type: GraphQLString },
        author: { type: GraphQLString },
        publisher: { type: GraphQLString },
    })
});

// query
const checkStores = new …
Run Code Online (Sandbox Code Playgroud)

interface graphql graphql-js

3
推荐指数
1
解决办法
2654
查看次数

来自 Gatsby 中单个对象 JSON 文件的 GraphQL 模式

所以我想从 Gatsby 的 GraphQL 查询一个不是数组的 JSON 文件,但我真的不知道该怎么做。

据我了解gatsby-transformer-json文档 - 它只支持加载数组并通过allFileNameJson模式访问它们。

我的gatsby-config插件(只有这个问题的必要插件):

{
  resolve: 'gatsby-source-filesystem',
  options: {
    name: 'data',
    path: `${__dirname}/src/data`
  }
},
'gatsby-transformer-json'
Run Code Online (Sandbox Code Playgroud)

然后让我们说src/data我有一个something.json文件,如下所示:

{
  "key": "value"
}
Run Code Online (Sandbox Code Playgroud)

现在我想从something.json文件中查询数据,但没有somethingJson我可以查询的模式(尝试使用 Gatsby 的 GraphiQL)。

有人可以指出我做错了什么或者我该如何解决这个问题?

graphql-js gatsby

3
推荐指数
1
解决办法
1367
查看次数

GraphQL:从对象构建查询参数

如果我有一个对象:

{"where":{"publishedAt_lt":"2018-01-01"}}
Run Code Online (Sandbox Code Playgroud)

如何将其转换为适合查询参数的字符串?

articles(where: {publishedAt_lt: "2018-01-01"})
Run Code Online (Sandbox Code Playgroud)

javascript graphql graphql-js

3
推荐指数
2
解决办法
3754
查看次数

graphql,将大查询拆分为小查询

我正在使用https://developer.github.com/v4/

我有一个像这样的巨大查询:

query ($login: String!, $first: Int, $after: String) {
  user (login: $login){
    avatarUrl
    login
    name,
    followers(first: $first, after:$after) { 
      edges{
        cursor
        node{
          id
          name
          login
          avatarUrl
        }
      }
      totalCount
    },
    repositories(first: $first) {
      edges{
        cursor
        node{
          id
          name
        }
      }
      totalCount
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但我认为从服务器查询大量数据是不好的。

我有followersrepositories页。所以我认为将这个巨大的查询拆分为小查询更好。

这是小查询:

关注者查询:

query($login: String!, $first: Int, $after: String) {
    user(login: $login) {
      followers(first: $first, after: $after) {
        edges {
          cursor
          node {
            id
            name
            login
            avatarUrl
          }
        } …
Run Code Online (Sandbox Code Playgroud)

graphql graphql-js github-graphql

3
推荐指数
1
解决办法
3744
查看次数

Graphql 无法返回数组

我正在使用并尝试针对IEX REST APIApollo-Server创建 REST 查询,该查询返回如下所示的数据:

{
  "symbol": "AAPL",
  "companyName": "Apple Inc.",
  "exchange": "Nasdaq Global Select",
  "industry": "Computer Hardware",
  "website": "http://www.apple.com",
  "description": "Apple Inc is an American multinational technology company. It designs, manufactures, and markets mobile communication and media devices, personal computers, and portable digital music players.",
  "CEO": "Timothy D. Cook",
  "issueType": "cs",
  "sector": "Technology",
  "tags": [
      "Technology",
      "Consumer Electronics",
      "Computer Hardware"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用数据源。我typeDefsresolvers看起来像这样:

const typeDefs = gql`
    type Query{
        stock(symbol:String): …
Run Code Online (Sandbox Code Playgroud)

javascript apollo graphql graphql-js apollo-server

3
推荐指数
1
解决办法
4775
查看次数

graphqljs - 必须提供查询根类型

我该如何解决这个错误?对于这个特定的模式,我不需要任何查询(它们都是突变)。我不能通过null,如果我通过一个空的GraphQLObjectType它会给我错误:

Type Query must define one or more fields.
Run Code Online (Sandbox Code Playgroud)

javascript graphql graphql-js

3
推荐指数
1
解决办法
1万
查看次数

无法设置未定义的属性“名称”(Nodejs Graphql)

我正在尝试通过使用一些虚拟数据制作一个简单的 Node 应用程序来学习 Graphql。

当我尝试运行 Node 时出现以下错误

TypeError: Cannot set property 'name' of undefined
at GraphQLObjectType (/Users/BorisGrunwald/Desktop/programmering/Javascript/Node/graphQLServer/server/node_modules/graphql/type/definition.js:480:15)
at Object.<anonymous> (/Users/BorisGrunwald/Desktop/programmering/Javascript/Node/graphQLServer/server/schema/schema.js:22:23)
at Module._compile (internal/modules/cjs/loader.js:721:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
at Module.require (internal/modules/cjs/loader.js:657:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/Users/BorisGrunwald/Desktop/programmering/Javascript/Node/graphQLServer/server/app.js:6:20)
Run Code Online (Sandbox Code Playgroud)

这些是我项目中仅有的两个文件:

应用程序.js

const express = require('express');
const graphqlHTTP = require('express-graphql');

const app = express();

const schema = require('./schema/schema');

app.use('/graphql',graphqlHTTP({
    schema
}));

app.listen(4000,() => {
    console.log('listening on port 4000');
});
Run Code Online (Sandbox Code Playgroud)

架构.js

const graphql = require('graphql');   

const { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js graphql-js

3
推荐指数
1
解决办法
1634
查看次数

Graphql/Apollo 错误输出有时 data: null 有时 data: { function: null}

我正在为我的 graphql 设置测试。在这样做的同时,我意识到有时错误情况下的数据对象输出如下:

{
   errors: [...],
   data: null
}
Run Code Online (Sandbox Code Playgroud)

有时 :

{
     errors: [...],
     data: {
        updateCity: null
    }
}
Run Code Online (Sandbox Code Playgroud)

这些测试是针对突变的。这是两个代码的示例:

解析器案例 1:

 updateUser(parent, args, context, info) {
      logger.debug('Mutation > updateUser resolver');
      return userController.user.update.user(parent, args.userInfo, context, info);
    },
Run Code Online (Sandbox Code Playgroud)

模式案例 1:

extend type Mutation {
    updateUser(userInfo: UserInfo!): User!
}
Run Code Online (Sandbox Code Playgroud)

控制器案例1:

user: async (parent, args, context, info) => {
    try {
      logger.debug('User Controller : update User');
      await controller.validate(args);
      const userModel = new UserModel('member');
      if (!(await userModel.findOne(args.id))) errorscb.userInputError('User does not exist');
      let id …
Run Code Online (Sandbox Code Playgroud)

node.js graphql graphql-js apollo-server

3
推荐指数
1
解决办法
942
查看次数

NodeJS/GraphQL:尝试使用自定义 DateTime 标量,但出现错误

我正在学习一个教程,其中老师正在String为他的createdAt字段使用类型,并建议如果我们愿意,可以使用自定义标量类型来处理更强类型的DateTime字段,所以我正在尝试这样做。

我收到以下错误: Error: Unknown type "GraphQLDateTime".

这是违规代码:

const { gql } = require('apollo-server')
const { GraphQLDateTime } = require('graphql-iso-date')

module.exports = gql`
  type Post {
    id: ID!
    username: String!
    body: String!
    createdAt: GraphQLDateTime!
  }
  type User {
    id: ID!
    email: String!
    token: String!
    username: String!
    createdAt: GraphQLDateTime!
  }
  input RegisterInput {
    username: String!
    password: String!
    confirmPassword: String!
    email: String!
  }
  type Query {
    getPosts: [Post]
    getPost(postId: ID!): Post
  }
  type Mutation {
    register(registerInput: RegisterInput): …
Run Code Online (Sandbox Code Playgroud)

node.js graphql graphql-js

3
推荐指数
1
解决办法
3211
查看次数

GraphQL:防止空数组作为输入

我现在正在学习 GraphQL,但遇到了一个我无法解决的问题。

我已将架构中的类型定义为

输入学校{名称:字符串!考试:[科目!]!}输入主题{名称:字符串!标记:数字!}

但是在运行服务器时。我将数据作为 "data": { "name":"varun", "exams":[], }

服务器不会抛出任何验证错误。请建议我解决方案。是否有任何可能的方法在作为空数组通过考试时获得验证错误。

我尝试了替代方法,但在模式级别上没有任何效果。我必须明确进行检查以检查考试字段不应该是空数组。谢谢

apollo graphql-js

3
推荐指数
1
解决办法
884
查看次数