meteor - 如何将参数传递给graphql查询?

标签 meteor meteor-blaze graphql apollo

我正在尝试在 Meteor blaze 项目中使用 Apollo graphql。

我正在使用 swydo:blaze-apollo 中的软件包。 使用graphql查询从mongoDB获取数据就可以了。

// Using this one can get data
const LOCATION_COUNTRY_QUERY = gql`
{
    locations(location_type: "Country"){
        location_id
        name
        iso_code
    }
}
`;

Template.home.onCreated(function(){
    const country = this.gqlQuery({query: LOCATION_COUNTRY_QUERY}).get();
    console.log(country.locations); // Which will show an array list of country.
});

但是,我不想在查询中对“Country”进行硬编码。我想将字符串传递到查询中,然后获取其他 location_type 的数据。但我找不到任何关于它的文章,并且 gql 语法只是阻止任何参数。

谁有类似经历,可以给点建议吗?

最佳答案

您可以使用 GraphQL 变量来完成这项工作。 首先,向您的 LOCATION_COUNTRY_QUERY 声明变量:

const LOCATION_COUNTRY_QUERY = gql`
query locationCountryQuery($locationType: String!){
    locations(location_type: $locationType){
        location_id
        name
        iso_code
    }
}
`;

现在您可以为查询提供新的变量选项:

Template.home.onCreated(function(){
    const country = this.gqlQuery({query: LOCATION_COUNTRY_QUERY, variables: {locationType: "Country"}).get();
    console.log(country.locations); // Which will show an array list of country.
}); 

关于meteor - 如何将参数传递给graphql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41632152/

相关文章:

arrays - 在数组上执行 findOne() 时,Meteor 和 Mongo DB 会提供不同的结果

javascript - 直接从空格键访问模板实例对象属性

javascript - Meteor - 在路由中的 React 模板中使用 Blaze 模板

c# - 如何在字符串中同时使用 $ 和 @?

javascript - Meteor simple-todos tut - 第 2 步 - Uncaught Error 找不到模块 './template.body.js

checkbox - Meteor 中的语义 ui 复选框

node.js - 用于非实时 Web 应用程序的 Meteor

javascript - 将 Javascript 中的当前时间传递给 GraphQL AWSDateTime 列

node.js - 是否存在与 GitHub API v4 一起使用的 Nodejs 库?

javascript - GridFS 集合 : howto get total size of all uploaded Files?