当前位置: 首页 > 面试题库 >

模板文字-从API获取错误

林鹭洋
2023-03-14
问题内容

所以我有一种按名称搜索动漫的方法,API是graphQL。这是查询的重要部分

const searchQuery = this.state.searchString;

var query = `query Search{
  # the rest of the query omitted for brevity
    media(type:ANIME, search: ${searchQuery} ){
  # ... 
}
`

我收到两种类型的错误响应,第一种是搜索字符串包含多个用空格隔开的单词时出现的错误-“语法错误:期望:,找到)”

第二,当我搜索单个单词时-“字段”媒体”自变量“搜索”需要类型String,找到火影忍者。

这里有什么问题?

你可以在这里看到完整的代码- https://github.com/red4211/react-anime-
search
,应用程序部署到GitHub的页面,搜索API响应去安慰- https://red4211.github.io/react-anime-
搜索/


问题答案:

问题是,给定诸如“火影忍者”之类的查询,您当前的代码将导致以下文本:

media(type:ANIME, search: naruto ) {

这是无效的语法,因为字符串文字应该用双引号(")引起来。

不要使用字符串插值为查询提供动态值。这些应始终表示为变量,并作为单独的对象包含在请求中query

您需要在操作中定义变量,并提供适当的类型

var query = `query Search ($searchQuery: String!) {

那么您可以在操作中的任何位置使用变量:

media(type:ANIME, search: $searchQuery) {

现在,只需将变量值与您的请求一起传递即可。

body: JSON.stringify({
  query,
  variables: {
    searchQuery,
  }
})

请注意,变量名$在GraphQL文档内部带有前缀,但在变量外部则不这样做。



 类似资料:
  • 模板代表了 freemarker.template.Template 实例。典型的做法是从 Configuration 实例中获取一个 Template 实例。无论什么时候你需要一个模板实例, 都可以使用它的 getTemplate 方法来获取。在 之前 设置的目录中的 test.ftl 文件中存储 示例模板,那么就可以这样来做: Template temp = cfg.getTemplate("

  • 我需要从服务绑定模板数据变量。服务使用HTTP检索JSON格式的数据。我得到了正确的数据,但是因为请求是如此的异步返回服务总是未定义的。 如何将异步数据销售到模板中?不使用回调? AppComponent: 菜单提供者: 月经量: 模板:

  • 问题内容: 我有两个模板T1和T2。我想获取T1的输出,并在T2内对其进行一些额外的处理。我的问题是: 如何将T1的输出存储在T2的变量中?这有可能吗? 这是一些伪模板: 问题答案: 没有内置支持将模板结果存储在模板变量中,仅用于包含结果。 但是,您可以使用所需的任何复杂功能注册自定义功能。您可以注册一个函数,该函数将执行由其名称标识的模板,并且可以将结果返回为,可以将其存储在模板变量中。 这样做

  • 我正在使用图形api: 使用我的访问令牌获取特定用户的头像。在邮递员中,我可以使用上面的get调用查看图像。在我的spry-boot应用程序中,我使用如下所示: 我收到以下错误: 我已将RestTemplate定义为: 有人能帮我一下吗?

  • 是否可以通过ARM模板获得?我看到的例子是,我需要使用一些PowerShell来获取它,然后将它作为参数注入,现在仍然是这样吗?最后,我试图获取广告应用程序的,然后将其分配给KeyVault实例。

  • 问题内容: 在我的Spring应用程序中,我想使用FreeMarker生成将由我的应用程序发送的电子邮件文本。生成的文本将永远不会返回到视图,因此我不需要配置FreeMarker视图解析器。该文档似乎表明我应该像这样配置FreeMarkerConfigurationFactoryBean 配置完该bean之后,实际上如何获取具有特定变量Map的特定模板生成的文本。换句话说,之后是什么代码: Spr