我试图找出编写一个过滤多个参数的解析器的最佳方法 . 我有以下graphql类型

const userQuery = new GraphQLObjectType({

name: 'Query',

fields: {

Users: {

type: new GraphQLList(User),

args: {

userId: { type: GraphQLString }

},

resolve: function (_, { UserId}) {

return new Promise((resolve, reject) => {

//Code to query the data store for the user with the given UserId

})

}

}

}

});

用户类型具有以下字段

姓名

UserId

类型

性别

现在,如果我想介绍基于名称过滤用户的能力,那么最好的方法是什么 . 我能想到的唯一方法是修改解析器以包含其他args,然后根据传入的内容将其发送到数据库 . 例如

const userQuery = new GraphQLObjectType({

name: 'Query',

fields: {

Users: {

type: new GraphQLList(User),

args: {

userId: { type: GraphQLString }

},

resolve: function (_, { UserId, name}) {

return new Promise((resolve, reject) => {

//Check which argument is passed in and then run the query against the datastore

})

}

}

}

});

有没有更好的方法来做到这一点?如果我希望用户能够过滤另一个属性,那么它会变得更加复杂,并且解析功能将变得庞大而复杂 .

java js 解析器_graphqljs具有多个参数的解析器相关推荐

  1. js中top,left,height,width相关参数的解析和实例

    下面的这些参数的解析都是针对于IE浏览器的: 得到屏幕中鼠标的坐标,相对于整个页面: x=event.clientX, y=event.clientY 得到当前窗口的宽度: w=document.bo ...

  2. python带参数的装饰器的作用_Python带参数的装饰器运行原理解析

    关于装饰器的理解,特别像<盗梦空间>中的进入梦境和从梦境出来的过程,一层一层的深入梦境,然后又一层一层的返回,被带入梦境的是被装饰的函数,装饰器就是使人入梦的工具. 上代码: from f ...

  3. python 装饰器 参数-Python装饰器(4)带参数的装饰器

    内容纯属个人理解,不对之处,欢迎指正. 之前说过,装饰器其实就是函数,既然是函数,那就可以有参数,装饰器也不例外,接下来我们来分析带参数的装饰器. 如何构造带参数 带参数倒是很简单,在装饰的时候给装饰 ...

  4. 戴尔服务器型号用途,戴尔服务器DELLPowerEdgeR610详细参数用途解析-20210408230926.doc-原创力文档...

    戴尔服务器DELLPowerEdgeR610详细参数用途解析 戴尔服务器DELLPowerEdgeR610详细参数用途解析 戴尔服务器DELLPowerEdgeR610详细参数用途解析 戴尔服务器 D ...

  5. 装饰器python3菜鸟教程_认识Python装饰器

    Python中的装饰器用来给Python中的函数添加一些辅助功能.比如我们可以把[输出日志]这个辅助功能写到一个装饰器里.只要我们在某个函数A之前添加了这个[输出日志]的装饰器,那么执行函数A的时候, ...

  6. python装饰器哪个好_[Python] 对 Python 装饰器的理解心得

    最近写一个py脚本来整理电脑中的文档,其中需要检校输入的字符,为了不使代码冗长,想到使用装饰器. 上网搜索有关python的装饰器学习文档,主要看的是AstralWind的一篇博文,以及Limodou ...

  7. js 数组 实现 完全树_JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个技巧

    摘要: JS的"编译原理". 原文:JavaScript的工作原理:解析.抽象语法树(AST)+ 提升编译速度5个技巧 作者:前端小智 Fundebug经授权转载,版权归原作者所有 ...

  8. 28 Java类的加载机制、什么是类的加载、类的生命周期、加载:查找并加载类的二进制数据、连接、初始化、类加载器、双亲委派模型、自定义类加载器

    28Java类的加载机制 28.1.什么是类的加载 28.2.类的生命周期 28.2.1.加载:查找并加载类的二进制数据 28.2.2.连接 28.2.3.初始化 28.3.类加载器 28.4.类的加 ...

  9. MyBatis参数名称解析器-ParamNameResolver解析

    ParamNameResolver ParamNameResolver是一个参数名解析器,负责把方法的参数按顺序解析出来并进行标注 主要用来处理接口形式的参数,最后会把参数处放在一个map中 map的 ...

最新文章

  1. C 关于页面刷新和combobox的使用
  2. 2021年值得关注的5个RPA趋势
  3. linux 某个文件打不开了,linux操作系统下,exe文件为什么打不开?
  4. 根据文件路径生成相应文件
  5. python的迭代器指向第一个字符_python(七)字符串格式化、生成器与迭代器
  6. 【Python】大数据存储技巧,快出csv文件10000倍!
  7. jQuery之jQuery扩展和事件
  8. javascript字符串相关的面试题总结
  9. Linux下配置服务器节点上的时区
  10. 画面设置_LOL手游设置界面翻译:基本设置/画面/音效/功能与快捷语音
  11. 受iPhone 12销量变化影响 Q2柔性OLED面板出货量预计环比下滑35%
  12. C#之数据库编程:从入门到精通
  13. 使用AjaxPro实现ajax效果
  14. 如何政治正确地黑咪蒙?!
  15. 《研究生英语科技论文写作》学习笔记
  16. [数据库] DSN是什么/是什么意思--解释
  17. OpenCV(4.0.0) Error: Assertion failed (dst.data == (uchar*)dst_ptr) in cvShowImage
  18. 《现代操作系统》读书笔记之——进程间通信
  19. mysql从入门到精通作者_mysql从入门到精通(连载)
  20. jQuery中的$.ajax

热门文章

  1. php mysql化妆品商城计算机毕业设计网站成品
  2. 你会几种“复制”文本的方式?----浅谈I/O流
  3. python 两个变量同时循环_python基础篇(子非鱼)
  4. java+jquery实现长轮询案例_网页实时聊天之js和jQuery实现ajax长轮询
  5. oracle 对表重建索引,重建特定Oracle表的所有常规索引
  6. 光电整纬机常见操作问题
  7. ICANN总裁Fadi Chehadé:IPv6峰会全面推动了IPv6在中国的发展与产业落地
  8. .NET基础编程之特性 - Attribute
  9. .NET应用架构设计—表模块模式与事务脚本模式的代码编写
  10. linux单块网卡绑定多个ip及网卡聚合绑定多个ip方法