javascript - 如何从服务器执行 GraphQL 查询

标签 javascript graphql graphql-js

我正在使用 graphql-express 创建一个端点,我可以在其中执行 graphql 查询。虽然我将 Sequelize 与 SQL 数据库一起使用,但直接从我的 graphql 之外的服务器使用它感觉不对 resolve职能。如何从定义它的同一服务器查询我的 graphql API?

这就是我设置 graphql 端点的方式:

const express = require('express');
const router = express.Router();
const graphqlHTTP = require('express-graphql');
const gqlOptions = {
   schema: require('./schema')
};
router.use('/', graphqlHTTP(gqlOptions));

modules.exports = router;

基本上我想要的是能够做这样的事情:

query(`
  {
    user(id: ${id}) {
      name
    }
  }
`)

我将如何创建这个 query功能?

最佳答案

GraphQL.js本身不需要http服务器来运行。 express-graphql 只是一个将查询解析器挂载到 http 端点的助手。

您可以将您的架构和查询传递给 graphql,它会返回一个 Promise 来解析对数据的查询。

graphql(schema, query).then(result => {
  console.log(result);
});

所以:

const {graphql} = require('graphql');
const schema = require('./schema');
function query (str) {
  return graphql(schema, str);
}

query(`
  {
    user(id: ${id}) {
      name
    }
  }
`).then(data => {
  console.log(data);
})

关于javascript - 如何从服务器执行 GraphQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424728/

相关文章:

javascript - Angular : Open new tab without popup blocker

Javascript block 删除

reactjs - 改变使用 useQuery 获取的远程数据的最佳方法是什么

django - 默认解析器的身份验证/授权

attributes - document.body.setAttribute 在 IE-7 中不起作用

mysql - GraphQL 内部的 Sequelize 不会连接连接表

reactjs - 使用 GraphQL 或 GraphQL 端点生成 schema.json

graphql - 在 type-graphql 突变中传递多个参数以及 `GraphQLUpload`

javascript - graphqljs - 如何获取文件名和错误行

javascript - 更改 CSS 类定义