Articles of graphql

如何将查询逻辑添加到基于graphql-sequelize的安装?

这是一个简单的情况 我想查询GraphQL,并在今年的200天之内取得所有在读学校的学生。 我有一个学生sequelize模型,一个匹配的graphql对象,学生查询接受天int作为参数{学生(天:200)} 我明显想要做的就是实施逻辑“让所有学生在school_visits counter超过200”作为一个例子… 我使用graphql-sequelize在sequelize和GraphQL之间进行粘合。 一个简单的示例查询定义如下所示: students: { type: new GraphQLList(Student), args:{ id : {type:GraphQLInt}, days: {type:GraphQLInt} }, resolve: resolver(models.Student) } 你可以注意到,这个结构不允许我插入一些逻辑到查询中…如果你有任何使用GraphQl和Sequelize的经验 – 这是一个非常普遍的情况…我会很感激任何帮助解决它。 干杯 半掩

具有明确错误的GraphQL:Query.example字段types必须是输出types,但得到:

我试图运行与graphql快递服务器,我得到以下错误: 错误:Query.example字段types必须是输出types,但得到:[object Object]。 express-graphql在路由中使用: app.use('/graphql', graphqlHTTP(req => ({ schema, pretty: true }))); 模式如下所示: export default new GraphQLSchema({ query: new GraphQLObjectType({ name: 'Query', fields: queries }) }); 查询只有一个从这里导入的查询: import { GraphQLList, GraphQLID, GraphQLNonNull } from 'graphql'; import exampleScheme from '../models/schemes/example'; import {example as exampleData} from '../models/jsons' export default { type: exampleScheme, resolve (root, params, options) { […]

如何用GraphQL和ApolloStack解决union / interface字段

我正在使用我的GraphQL实例的接口,但这个问题可能也适用于工会。 在所有实现接口的types中都有两个公共字段,但是每个types都有多个附加字段。 鉴于以下架构 interface FoodType { id: String type: String } type Pizza implements FoodType { id: String type: String pizzaType: String toppings: [String] size: String } type Salad implements FoodType { id: String type: String vegetarian: Boolean dressing: Boolean } type BasicFood implements FoodType { id: String type: String } 和以下parsing器 { Query: { […]

graphql-tag / index没有导出成员'gql'

我将我的Angular应用程序REST后端转换为GraphQL。 我试图从graphql-tag导入gql。 我正在search和search,我的导入看起来像每个人都… import { Angular2Apollo } from 'angular2-apollo'; import { ApolloClient } from 'apollo-client'; import { gql } from 'graphql-tag'; 但是gql的红色下划线表示没有find。 当我运行ng serve我得到这个错误cmder … … / node_modules / graphql-tag / index“'没有导出成员'gql'。) 我已经运行了许多apollo和angular度npm安装,包括npm install –save graphql-tag ,试着安装任何我失踪的东西,似乎并不npm install –save graphql-tag我安装的东西。 我究竟做错了什么?

如何从GraphQL的列表中获取1条logging

我对GraphQL很陌生,并试图理解如何从查询中获得1条logging。 这是我目前的查询的结果: { "data": { "todos": null } } 我不知道什么是错的。 我想结果是这样的: { "data": { "todos": { "id": 1, "title": "wake up", "completed": true } } } 这是我在学习GraphQL时创build的代码。 schema.js: var graphql = require('graphql'); var TODOs = [ { "id": 1, "title": "wake up", "completed": true }, { "id": 2, "title": "Eat Breakfast", "completed": true }, { […]

Graphql模式返回null

我试图返回一个身份validation令牌,以响应用户名和密码作为参数的graphql查询,但不知何故graphql总是返回null 。 我可以在返回之前打印令牌。 var { GraphQLObjectType, GraphQLInt, GraphQLList, GraphQLString, GraphQLSchema } = require('graphql'); let MyUser = require('./modules/user/user'); const Query = new GraphQLObjectType({ name: 'Query', description : 'UserQuery', fields: function(){ return { Token :{ type: GraphQLString, description : "Authentication token", args: { user_name: { type: GraphQLString }, password: { type: GraphQLString }, }, resolve(root, args){ let […]

Graphql需要模块外部vs GraphQLObjectType内部

可能是标题不适合我的问题,但让我解释我的情况。 我正在使用Graphql schema.Here是我最初的schema.js文件https://github.com/sany2k8/graphql-udemy/blob/master/schema/schema.js 它工作正常,然后我决定把它分成不同的小文件,例如root_query_type.js , mutation.js , user_type.js和company_type.js 。 所有文件都作为模块导出并循环使用。 例如 – user_type.js const graphql = require('graphql'); const axios = require('axios'); const { GraphQLObjectType, GraphQLString, GraphQLInt } = graphql; //const CompanyType = require('./company_type'); // *this line causing error* const UserType = new GraphQLObjectType({ name: "User", fields: () => ({ id:{ type: GraphQLString}, firstName:{ type: GraphQLString}, […]

Docker上的节点服务器即使在端口绑定后也不能在本地主机上访问

我有graphql节点服务器。 我可以在没有docker的情况下在本地运行它。 但是在创build服务器的docker容器并将容器端口与主机端口绑定后,这不起作用。 这是我的Dockerfile代码: FROM node:boron-alpine WORKDIR /app COPY package.json /app RUN npm install COPY . /app ENV SERVER_PORT 8080 EXPOSE 8080 CMD npm run build && npm start 我的节点服务器代码是这样的: app.listen(process.env.SERVER_PORT,'0.0.0.0') console.log(`listening at ${port}`) 我使用以下命令运行docker: docker run -it -p 8080:8080 nodeapi 这完美的工作nodejs可以看到env SERVER_PORT导致它显示 "listening at 8080" 在控制台。 但是当我打开本地主机:8080这不起作用(该网站无法到达)。 我也尝试运行docker命令 docker run -it -p 127.0.0.1:8080:8080 nodeapi […]

如何在GraphQLparsing器中设置(数据库或其他)上下文?

GraphQL文档给出了一个parsing器函数的例子 ,它接受一个名为“context”的参数。 他们不得不这样说 – context )提供给每个parsing器并保存重要上下文信息(如当前login的用户)或访问数据库的值。 他们的代码示例如下所示 – Query: { human(obj, args, context) { return context.db.loadHumanByID(args.id).then( userData => new Human(userData) ) } } 这在我看来是一个完全自然的模式,希望在parsing器function内部进行数据库访问,毫不奇怪,这是我需要做的。 这个数据库上下文显然不是自动设置的,因为GraphQL完全不知道你的数据持久化方式。 我的问题是,如何configuration这个上下文来提供一个特定的db接口? 我在教程/文档或其他地方找不到这个。

上传图像到GraphQL服务器

我正在使用react-dropzone和graphql-server-express-upload在GraphQL Apollo中上传图像。 在我的客户端文件看起来像这样: 但在服务器上,当我login时,看起来像这样: { preview: 'blob:http://localhost:3000/c622b0bd-3f0d-4f52-91f4-7676c8534c59' } 我正在按照graphql-server-express-upload的自述文件中的说明进行操作,但目前为止还没有成功。 如何获得完整的图像?