数组中类型为graphql的对象的GraphQL字段

cod*_*nja 0 node.js graphql graphql-js

我在这里定义了一个graphQL对象:

const graphql = require('graphql');
const { GraphQLObjectType } = require('graphql');

const ProductType = new GraphQLObjectType({
    name: 'Product',
    description: 'Product GraphQL Object Schemal Model',
    fields: {
        productId: { type: graphql.GraphQLString },
        SKU: { type: graphql.GraphQLString },
        quantity: { type: graphql.GraphQLFloat },
        unitaryPrice:  { type: graphql.GraphQLFloat },
        subTotal: { type: graphql.GraphQLFloat },
        discount: { type: graphql.GraphQLFloat },
        totalBeforeTax: { type: graphql.GraphQLFloat },
        isTaxAplicable: { type: graphql.GraphQLBoolean },
        unitaryTax: { type: graphql.GraphQLFloat },
        totalTax: { type: graphql.GraphQLFloat }
    }
});

module.exports.ProductType = { ProductType };
Run Code Online (Sandbox Code Playgroud)

然后,我想在另一个GraphQL对象中使用此ProductType,但是我需要将该对象作为数组结构,如下所示:

const graphql = require('graphql');
const { GraphQLObjectType } = require('graphql');

const { ProductType } = require('./product');

const ShoppingCartType = new GraphQLObjectType({
    name: 'ShoppingCart',
    description: 'Shopping Cart GraphQL Object Schema Model',
    fields: {
        cartId: { type: graphql.GraphQLString },
        userId: { type: graphql.GraphQLString },
        products: [{ type: ProductType }]
    }
});

module.exports.ShoppingCartType = { ShoppingCartType };
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Dan*_*den 5

您需要使用GraphQLList包装器包装现有类型,如下所示:

products: { type: new GraphQLList(ProductType) }
Run Code Online (Sandbox Code Playgroud)