Javascript 在Gatsby graphql查询中将变量传递到正则表达式

Javascript 在Gatsby graphql查询中将变量传递到正则表达式,javascript,regex,graphql,gatsby,Javascript,Regex,Graphql,Gatsby,我有下面的查询,它正在接收变量$tag。目前,我正在根据其frontmatter.keywords的值筛选结果keywords是一个逗号分隔的字符串,因此我需要使用正则表达式来检查其中是否包含$tag,但是我无法确定如何将变量传递到正则表达式中。如果我将一个值硬编码到正则表达式中(如下面我硬编码的代码/example/),过滤工作。如果我用$tag替换example,我会收到一个错误: GraphQLError:变量“$tag”从未在操作“TagQuery”中使用 我应该如何在正则表达式中使用$

我有下面的查询,它正在接收变量
$tag
。目前,我正在根据其
frontmatter.keywords
的值筛选结果
keywords
是一个逗号分隔的字符串,因此我需要使用正则表达式来检查其中是否包含
$tag
,但是我无法确定如何将变量传递到正则表达式中。如果我将一个值硬编码到正则表达式中(如下面我硬编码的代码
/example/
),过滤工作。如果我用
$tag
替换
example
,我会收到一个错误:

GraphQLError:变量“$tag”从未在操作“TagQuery”中使用

我应该如何在正则表达式中使用
$tag


实际上,我更愿意采用另一种方法,将标记作为数组添加到
gatsby node.js
,但似乎没有任何基于数组值的过滤方法。

我最终将标记拆分为一个数组,然后使用以下方法进行过滤:

filter: { fields: { tags: { in: [$tag] } } }

无论在哪里传递$tag,只要将其转换为

const $tag = "\/".concat(tag).concat("\/")
但是您的错误明确地指出了一个事实,即您的查询根本没有使用该变量

filter: { frontmatter: { keywords: { regex: $tag } } }

您能告诉我如何将变量$tag传递到查询中吗?@OtaniShuzo查询中可用的变量是使用
createPage()
时作为
上下文
对象键传递的值。因此,如果使用
{alpha:'abc',bravo:2}
的上下文,您可以访问两个变量(如果需要)在查询中:
queryexampleQuery($alpha:String,$bravo:Int){
@Undistraction您介意发布整个查询现在的样子吗?@vasilitsirimokos给您。您认为是这样的:
filter: { frontmatter: { keywords: { regex: $tag } } }