用于传递变量的GraphQL查询参数语法

时间:2018-09-07 19:38:43

标签: meteor graphql

因此,我试图通过Meteor应用程序中的GraphQL查询访问数据库中的特定文档。我从URL中解析了文档ID,并且试图创建一个gql查询来获取该文档,但是我的查询返回了undefined,因为该查询的参数是undefined。我不确定自己哪里出了问题,因为我还是GraphQL的新手。

查询

    const contactId = instance.getContactId();
    const CONTACT_QUERY = gql`
        query contact {
            contact(_id: "${contactId}") {
                _id
                name
                customerId
                phone
                email
                position
                decisionMaker
            }
        }
    `;

模式

type Contact {
    _id: String!
    name: String!
    customerId: String
    phone: String
    email: String
    position: String
    decisionMaker: String
}

type Query {
    contacts: [Contact]
    contact(_id: String!): Contact
}

解析器

import { Contacts } from './contacts.js';

export default {
  Query: { 
    contacts() {
        return Contacts.find({}).fetch();
    },
    contact(contactId) {
        console.log(contactId);
        return Contacts.findOne({_id: contactId});
    }
  },
};

1 个答案:

答案 0 :(得分:0)

执行GraphQL查询不会将文档加载到minimongo中,因此您的客户端Meteor.Collection将为空。通常,人们选择使用Meteor的实时数据系统(出版物,订阅,馆藏和方法)或Apollo(查询和突变)。如果要执行后者,请遵循Apollo的文档,了解如何执行CONTACT_QUERY和访问结果。