跳过GraphQL解析器以返回数据

时间:2019-05-07 17:13:00

标签: node.js graphql graphql-js

我有一个GraphQl解析器,可以解析嵌套数据。

例如这是我的类型定义

<View style={styles.node}>
  <PercentageBar value={item.progress} />
</View>

对于帖子,我有我的解析器,用于将post._id解析为

  constructor(props) {
    super(props);
    this.state = {
      animHeight: new Animated.Value(this.props.value),
    };
  }

  componentDidMount() {
    Animated.timing(this.state.animHeight,
      {
        toValue: this.props.value,
        duration: 200,
      }
    ).start();
  }

<View style={styles.background}>
  <Animated.View style={{height: this.state.animHeight.interpolate({
            inputRange: [0, 1],
            outputRange: ['0%', '100%'],
          }}></Animated.View>
</View>

当我查询

时,上面的示例工作得很好
type Users {
  _id: String
  company: Company
}

但是问题是有时候我不必在Users: { company: (instance, arguments, context, info) => { return instance.company && Company.find({_id: instance.company}); } } 内使用Query { Users { _id name username company { _id PAN address } } } 解析器,因为它与用户一起使用,所以我只需要传递用户对象中的内容(不这里需要数据库调用)

我可以通过检查instance.company是否为_id或company来实现这一点,如果Users是从数据库中获取的,否则可以解决所有问题。

但是问题是我在很多地方都有这类解析器,所以我认为在有解析器的所有地方进行此检查不是一个好主意。

有没有更好的方法可以定义配置以跳过此解析器检查。

任何反馈或建议将不胜感激。

谢谢

0 个答案:

没有答案