Node.js 使用Express+;从数组中获取索引;图形ql
我刚刚用Express用GraphQL弄脏了我的手。我正在跟踪调查。我刚刚建立了一个基本的GraphQL模式,其中我有返回的字符串的硬编码数组。我想创建一个查询,该查询使用GraphQL(Node.js 使用Express+;从数组中获取索引;图形ql,node.js,express,graphql,Node.js,Express,Graphql,我刚刚用Express用GraphQL弄脏了我的手。我正在跟踪调查。我刚刚建立了一个基本的GraphQL模式,其中我有返回的字符串的硬编码数组。我想创建一个查询,该查询使用GraphQL(graphiql)提供此硬编码数组中元素的索引 代码 我创建了一个查询getEventIndex(eventName:String):Int,它接受事件名称并为我提供索引(整数) 结果为graphiql 查询 query { getEventIndex(eventName: "Cooking") } 结果
graphiql
)提供此硬编码数组中元素的索引
代码
我创建了一个查询getEventIndex(eventName:String):Int
,它接受事件名称并为我提供索引(整数)
结果为graphiql
查询
query {
getEventIndex(eventName: "Cooking")
}
结果
{
"errors": [
{
"message": "Cooking is not a function",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"getEventIndex"
]
}
],
"data": {
"getEventIndex": null
}
}
为什么Cooking
在这里被视为函数而不是createEvent
中的参数
当然,我没有深入研究GraphQL的规范,但我想它也可能能够处理基于参数的查询。此错误不是GraphQL特有的
期望将函数作为其第一个参数传入。为数组中的每个元素调用该函数,直到该函数返回truthy值,此时返回该元素的索引。args.eventName
的值不是一个函数(它是一个字符串),因此最终会出现该错误
或者传递一个函数,如:
const index = _arr.findIndex(value => value === args.eventName)
或者只是使用,这可能就是你想要做的:
const index = _arr.indexOf(args.eventName)
const index = _arr.indexOf(args.eventName)