GraphQL在resolver中查询数据库的正确做法是什么?

看教程了解到每个字段都要实现一个resolver函数来返回值(我在用nodejs的GraphQL库),假设我要从数据库里取数据,如果每个resolver里都查一次数据库然后取值的话,那效率岂不是十分低下。这里正确的做法是什么?

阅读 1.5k
1 个回答

研究了一阵子弄明白是怎么回事了,在实际运用中顶级Query下的字段一般都是存数组或者对象(或者说map)的,然后resolver也都是提供给数组或对象的,一般没有单独给一个字段加resolver情况。也就是说假设要获取一个appConfig,要写成这样:

// schema定义
type Query {
    appConfig: AppConfig
}

type AppConfig {
    isShowHeader: Boolean
    isShowSplash: Boolean
    latestVersion: String
} 

// 查询语句
{ appConfig { isShowSplash latestVersion } }

然后获取到的数据:

{
    "appConfig": { "isShowSplash": true, "latestVersion": "1.0" }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题