标签: graphql-js

如何使用 graphql 查询一系列值

我的数据模型是续集,我正在寻找一种简单的方法来使用 from: 和 to: 参数来指定范围来查询 graphql。

有语法吗?

graphql graphql-js

5
推荐指数
1
解决办法
6223
查看次数

突变中的 GraphQL 描述性成功消息

目前,在 GraphQL JS 实现中,没有从突变返回描述性成功消息的标准方法,例如“用户创建成功”等。我的问题有两部分:

  1. 我的想法是从 API 返回成功消息是有益的。这样,消息可以在不同客户端(例如网络和移动设备)上保持一致。客户端不必为每个 API 调用实现自定义消息。但我不确定最佳实践是什么。从突变调用返回描述性成功消息是否有任何缺点(除了增加响应大小之外)?

  2. 如果我决定这样做,graphql-js 中是否有标准方法可以做到这一点?

例如,是否可以取回如下内容:

{
  data: {
    mutationName: {var1:"val1"}
  },
  messages: {
    mutationName:"User created successfully"
  }
}
Run Code Online (Sandbox Code Playgroud)

graphql graphql-js express-graphql

5
推荐指数
1
解决办法
3632
查看次数

GraphQL 解析器参数的顺序错误(根、参数、上下文)

我想知道为什么我的参数似乎在我的 GraphQL 解析器中发生了变化。我正在使用express-graphql。

\n\n

一个解析器的示例:

\n\n
  getLocalDrivers: async (parent, args, ctx) => {\n    console.log(ctx);\n  }\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经编写了文档中出现的参数名称:http://graphql.org/learn/execution/

\n\n

但是当我调试和检查对象时,似乎 args 对象是第一个,上下文是第二个,父/根是第三个。

\n\n

家长:

\n\n
Object {location: "020202"}\n
Run Code Online (Sandbox Code Playgroud)\n\n

参数:

\n\n
IncomingMessage {_readableState: ReadableState, readable: false, domain: null, \xe2\x80\xa6}\n
Run Code Online (Sandbox Code Playgroud)\n\n

语境:

\n\n
Object {fieldName: "getLocalDrivers", fieldNodes: ....\n
Run Code Online (Sandbox Code Playgroud)\n\n

一些服务器代码:

\n\n
app.use(\n  "/graphql",\n  graphqlHTTP({\n    schema,\n    graphiql: true,\n    rootValue: rootResolver\n  })\n);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的根解析器:

\n\n
var rootResolver = {\n     getLocalDrivers: async (obj, args, ctx) => {\n       console.log(ctx);\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

架构:

\n\n
var { …
Run Code Online (Sandbox Code Playgroud)

graphql graphql-js express-graphql

5
推荐指数
1
解决办法
2562
查看次数

在 graphqlHTTP.Middleware 之后挂载中间件

我有一个关于express-graphql.\nI\xe2\x80\x99m 的问题,试图在 GraphQL 解析器之后运行中间件。

\n\n

这是我的前两次尝试:

\n\n
app.use('/api', graphqlHTTP({\n    schema: graphqlSchema\n  })\n);\n\napp.use((req, res, next) => {\n  console.log('middleware called');\n  next();\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
app.use('/api', graphqlHTTP({\n    schema: graphqlSchema,\n    graphiql: true,\n  }), () => {\n      console.log('middleware called');\n  }\n);\n
Run Code Online (Sandbox Code Playgroud)\n\n

两者都\xe2\x80\x99t 工作。\n我猜express-graphql不是next()在某个地方打电话。

\n\n

消息来源似乎证实了这一点:

\n\n
type Middleware = (request: Request, response: Response) => void;\n
Run Code Online (Sandbox Code Playgroud)\n\n

next不是参数。

\n\n

我尝试了这个解决方法:

\n\n
app.use( (req, res, next) => {\n  req.on('end', () => {\n    console.log('middleware called');\n  });\n  next();\n});\n\napp.use('/api', graphqlHTTP({\n    schema: graphqlSchema\n  })\n);\n …
Run Code Online (Sandbox Code Playgroud)

middleware express graphql graphql-js express-graphql

5
推荐指数
0
解决办法
438
查看次数

与 Sequelize 查询匹配的 GraphQL 查询字段

我这里有一个简单的场景。

我有一个 People Sequelize 模型,有 5 个字段:firstName、lastName、id、city 和 zipCode。我还有一个具有相同字段的 GraphQL 对象。

每次我进行 GraphQL 查询时,例如:

{
   people(id:123){
    firstName
    lastName
}
Run Code Online (Sandbox Code Playgroud)

Sequelize 发送如下 SQL 语句:

SELECT `firstName`, `lastName`, `id`, `city`, `zipCode` FROM `People` WHERE `People`.`id` = 123;
Run Code Online (Sandbox Code Playgroud)

我是否可以让 Sequelize 发送如下 SQL 语句:

SELECT `firstName`, `lastName` FROM `People` WHERE `People`.`id` = 123;
Run Code Online (Sandbox Code Playgroud)

基本上我想要的是 SQL 语句不会选择任何我不想要的额外列。

这是我在 GraphQL 查询对象中的解析函数:

resolve: function (root, args) {
   return Db.models.People.findAll({ where: args });
}
Run Code Online (Sandbox Code Playgroud)

node.js sequelize.js graphql graphql-js

5
推荐指数
0
解决办法
827
查看次数

如果过滤器变量为空,GraphQL 将禁用过滤

我有一个 Gatsby GraphQL 查询,用于获取按日期排序并按类别过滤的帖子列表。

{
  posts: allContentfulPost(
    sort: {fields: [date], order: DESC},
    filter: {category: {slug: {eq: $slug}}}
  ) {
    edges {
      node {
        title {
          title
        }
        date
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在什么时候$slug是空字符串"",我明白了

{
  "data": {
    "posts": null
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法获取所有帖子?

contentful graphql graphql-js gatsby

5
推荐指数
1
解决办法
5395
查看次数

GraphQLError:语法错误:无法解析意外字符“\u00A0”

当我使用 gql(来自“graphql-tag”)进行查询/突变/订阅时,出现错误。

\n

有谁遇到过这个错误并且知道如何修复它?
\n这是我的代码:

\n
import React from \'react\';\nimport { Mutation } from \'react-apollo\';\nimport MUTATION from \'./query.js\';\nimport gql from \'graphql-tag\';\n\nconst ADD_POST_MUTATION = gql`\n  mutation addPost($content: String!, $author: String!)\xc2\xa0{\n    addPost(content: $content, author: $author) {\n      content\n      author\n    }\n  }\n`;\n\nexport default class Tool extends React.Component {\n  state = {\n    content: \'\',\n    author: localStorage.getItem(\'user\') || \'\'\n  };\n\n  handleSubmit = (e, mutation) => {\n    console.log(mutation);\n    e.preventDefault();\n    mutation({ variables: { content: this.state.content, author: this.state.author }})\n      .then(res => console.log(res))\n      .catch(e => console.log(e));\n  }\n\n  render() {\n    return …
Run Code Online (Sandbox Code Playgroud)

reactjs graphql graphql-js react-apollo

5
推荐指数
1
解决办法
7104
查看次数

操作参数和 GraphQL 变量有什么区别?

我正在学习 GraphQL 的过程中,偶然发现了操作参数GraphQL 变量之间的区别。因为 IMO,两者都提供客户端将动态数据传递给突变或查询等的设施。

有人可以启发我吗?

干杯!

graphql graphql-js

5
推荐指数
1
解决办法
1644
查看次数

在 Relay.js 中,什么是“客户端突变标识符”?

在此处的中继文档中,它说:

Relay 使用通用的突变模式,其中突变类型的根字段具有单个参数(输入),并且输入和输出都包含用于协调请求和响应的客户端突变标识符。

但在他们提供的示例中,输入和输出分别如下所示:

// IntroducedShipInput
{
  "input": {
    "shipName": "B-Wing",
    "factionId": "1"
  }
}

// IntroducedShipPayload
{
  "introduceShip": {
    "ship": {
      "id": "U2hpcDo5",
      "name": "B-Wing"
    },
    "faction": {
      "name": "Alliance to Restore the Republic"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

那么client mutation标识符是什么呢?为什么以及如何使用它来协调请求和响应?

relay graphql graphql-js relayjs relaymodern

5
推荐指数
1
解决办法
1259
查看次数

Prisma:有什么方法可以执行 javascript 作为 prisma 数据类型的默认值吗?

在我的数据模型中,作为 id 的类型,我想生成一个以用户开头的默认值。

所以 id 会像这样user..rear33422qeqr

type User {

  myId: String! @default (`user${2+2}`)
  name: String!
  email: String! @unique

}
Run Code Online (Sandbox Code Playgroud)

是否可以调用 javascript 函数或使用字符串插值 ( user${2+2})

javascript graphql graphql-js prisma prisma-graphql

5
推荐指数
0
解决办法
832
查看次数