【问题标题】:How can I build a object type schema instead of primary type?如何构建对象类型模式而不是主要类型?
【发布时间】:2019-09-25 11:09:28
【问题描述】:

我正在尝试为对象设置架构,例如。

let schema1 = buildSchema(`
type Query {
    obj1: {
      prop1: String,
      prop2: number
    }
}
`);

但我收到同步错误,我该如何解决?

我也尝试过创建自定义类型

let schema1 = buildSchema(`
  type customizedType {
    obj1: object
  }
  type Query {
    obj1: String
  }
`);

还是语法错误。

主要类型工作正常。

let schema1 = buildSchema(`
type Query {
    obj1: String
}
`);

我的根解析器是这样的:

const root = {
    obj1: {
      prop1: "String",
      prop2: 123
    }
};

我正在尝试通过以下语句获得结果。

let result1 = await graphql(schema1, "{ obj1 }", data);

【问题讨论】:

    标签: javascript graphql


    【解决方案1】:

    我明白了,我只需要定义一个合适的类型。

    我有以下根数据:

    const root = {
        obj1: {
          prop1: "String",
          prop2: 123
        }
    };
    

    这是我的示例架构

    let schema1 = buildSchema(`
      type obj1Type {
        prop1: String,
        prop2: number,
      }
      type Query {
        obj1: obj1Type
      }
    `);
    

    那我就可以解析根数据了

      async componentDidMount() {
        let result1 = await graphql(schema1, "{ obj1 { prop1, prop2 } }", root);
        console.log("obj1", result1); 
        // {data: {obj1: {prop1: "String", prop2: 123 }}}
        // I can also get partial data
        let result1_partial = await graphql(schema1, "{ obj1 { prop1 } }", root);
        console.log("obj1 partial", result1_partial) 
        // {data: {obj1: {prop1: "String" }}}
      }
    

    【讨论】:

      猜你喜欢
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2011-02-14
      • 1970-01-01
      相关资源
      最近更新 更多