Apollo 客户端:变量未定义。收到状态码 400

2023-11-24

我正在尝试使用 Apollo 客户端在 GraphQL 查询中使用动态变量。我已遵循文档,但 Apollo 不断给我错误,说我的变量未定义,并最终以状态代码 400 进行响应。

Apollo 的文档是这样说的:

mutate: (选项?: MutationOptions) => Promise 一个从 UI 触发突变的函数。您可以选择传递变量、optimisticResponse、refetchQueries 和 update 作为选项,这将覆盖传递给 Mutation 组件的任何 props。该函数返回一个满足您的突变结果的承诺。

这是我尝试编写的代码:

const fetch = require('node-fetch');
const ApolloClient = require('apollo-boost').default;
const gql = require('graphql-tag');

const client = new ApolloClient({
    uri: "http://api.domain.com/graphql",
    fetch
});

run();

async function run() {
    try {
        const resp = await client.mutate({
            mutation: gql`mutation {
                trackPr(id: $id, pr: $pr, title: $title, body: $body, state: $state, merged: $merged) {
                    id
                }
            }`,
            variables: {
                id: 1,
                pr: 1,
                title: "test title",
                body: "test body",
                state: "test state",
                merged: false
            },
        });


        console.log(resp.data);
    } catch(ex) {
        console.log(ex);
    }
}

然后我会收到每个变量的错误消息,指出它尚未定义:

[GraphQL 错误]:消息:变量“$id”未定义。,位置:[对象对象],[对象对象],路径:未定义

在每条错误消息之后,我都会收到一条状态代码为 400 的最终消息:

[网络错误]:ServerError:响应不成功:收到状态代码400

突变本身在没有变量和直接在突变中设置的所有值的情况下运行良好,但我不知道为什么它认为变量未定义。


操作内使用的任何变量都必须声明为操作定义的一部分,如下所示:

mutation SomeOptionalMutationName ($id: ID!) {
  trackPr(id: $id) {
    id
  }
}

这允许 GraphQL 根据提供的类型验证变量,并验证变量是否用于代替正确的输入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apollo 客户端:变量未定义。收到状态码 400 的相关文章

  • 如何找到您在服务器中的加入位置

    寻找一种方法来查找您何时按位置加入服务器 例如 如果我是服务器的所有者 我将是 1 因为我先加入 然后如果我在所有者之后加入 我将是 2 如果我在 20 人加入后加入 我将是 21 依此类推 有谁知道如何在 Node Js 中解决这个问题
  • MongooseError:操作 `orders.deleteMany()` 缓冲在 10000 毫秒后超时

    当我运行我的应用程序时npm run seeder然后我面临这个错误 我仔细检查了我的数据库连接 没问题 另外 我检查了我的 ordermodels 文件也没有问题 我用过MongoDB的compass没有任何问题 我不知道为什么显示buf
  • 添加元数据到快速路线

    有什么方法可以将元数据添加到 Express 的路线中吗 例如 app get some route function req res some meta data 我正在寻找一种针对我的节点应用程序的 AOP 方法 因此我想通过身份验证和
  • 处理从nodejs到mongo db的连接丢失

    当nodejs和mongodb服务器之间的连接丢失时 我试图得到 连接丢失 或类似的信息 我使用本机驱动程序并具有以下代码 var mongo require mongodb var server new mongo Server host
  • npm install 的问题(Angular)

    今天我尝试创建一个新项目 所以我使用这个命令 ng new NAME style less 并在我的cmder中弹出错误和警告 所以我卸载了 Roaming npm 和 npm cache 中的节点和文件 然后我安装了node并再次下载cm
  • 在node.js 0.12.x中使用libuv函数

    我写了一个node js c 插件 在node js 0 10 x下可以成功编译 但是当迁移到0 12 x时 出现了一些错误 例如error C2065 uv work t undeclared identifier 我想知道我是否可以在0
  • 如何强制 tsc 忽略 node_modules 文件夹?

    我正在使用 tsc 构建任务 不幸的是 我总是从节点模块文件夹中收到相同的错误 Executing task node modules bin tsc cmd watch p tsconfig json lt node modules ty
  • 如何用 JavaScript 修复图像透视变形和旋转?

    我有一些用手机拍摄的图像 有没有可以拉直纸张照片并将其压平的 JavaScript 库 例如 我想创建一个矩形图像 该图像没有任何失真 换句话说我想知道如何用 JavaScript 修复透视变形和旋转 例如 我发现下面的示例图像来自this
  • 在express js中禁用http方法

    我正在我的 Express 应用程序上进行 nessus 测试 这是我得到的 基于每种方法的测试 HTTP 方法 ACL CHECKOUT COPY DELETE GET HEAD LOCK MERGE MKACTIVITY MKCOL 移
  • 如何清除node.js中的超时

    您好 我们正在使用 node js socket io 和 redis 开发应用程序 我们有这个程序 exports processRequest function request result var self this var time
  • 无论我将其添加到何处,Azure 应用程序服务(节点)CORS 源都无法工作

    Azure CORS 设置似乎根本不起作用 除非我指定 任何和所有请求都将返回 has been blocked by CORS policy Response to preflight request doesn t pass acces
  • antlr4-tool 在 Win10 中失败,并显示:错误:命令失败:哪个 java

    在Win10中运行 为了尝试在Node JS中创建解析器 我安装了ANTLR4工具 npm install save dev antlr4 tool Ran c prj parser node modules bin antlr4 tool
  • webstorm 无法识别“require”关键字

    我在用着WebStorm作为IDE 这是我的文件夹结构和安装的express js 但我的示例代码不知道require关键词 var express require express var app express app listen 13
  • 返回承诺与在承诺内返回未定义之间的区别

    我不太确定我是否理解这两种常见场景之间的区别 假设我们有这个 user save then function val anotherPromise1 val then function val anotherPromise2 val cat
  • Node.js console.log - 是否可以更新一行而不是创建新行?

    My node js应用程序有很多控制台日志 这对我来说很重要 这是一个相当大的应用程序 因此运行很长时间 我需要知道事情仍在进展 但我最终得到了数千行控制台日志 是否有可能做一个console update删除 替换控制台行而不是创建新行
  • 获取当前范围内所有定义的变量

    我正在解析一个包含以下内容的网站 hmapId 7 42500000000626135 hmapStartInterv 7 750 hmapEndInterv 7 846 hmapUrlInterv 7 some url hmapNameI
  • 节点js(获取连接)

    var nodePort 3030 var express require express var app express var bodyParser require body parser var db require mysql va
  • 什么是 NPM?为什么需要它? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 以前 我用记事本制作了一些网站 所以我们必须创建一个文件夹 TREE 并在其中放入一个 htm 文件 以及一些文件夹 其中包含 Jav
  • 使用 PostgreSQL 安装 PassportJS

    是否有使用 PostgreSQL 设置 PassportJS 的演练教程 即用 PostgreSQL 替换 MongoDB 好吧 这已经开放了一段时间 但由于我发现自己也遇到了同样的问题 所以就这样了 您唯一需要做的就是使用 Postgre
  • 将base64图像转换为Node Js中的文件

    我是 Node Js 新手 我需要包含用户的个人资料图片 我从 IOS 应用程序收到 Base64 图像的请求 我需要将其存储在 images 文件夹中并将图像路径保存在 mongodb 数据库中 我使用了以下代码 var bitmap n

随机推荐

  • 将 JSON 字符串发布到 WEB API

    我有一个ASP NET WEB API 2需要有一个应用程序POST方法接受一个JOSN string结构未知javascript 我启用了cors and GET方法工作正常 但是发送时JSON从客户端 api 的方法参数始终是null
  • Mongoose Typescript 方式...?

    尝试在 Typescript 中实现 Mongoose 模型 搜索 Google 只发现了一种混合方法 结合 JS 和 TS 如果没有 JS 按照我相当幼稚的方法 如何实现 User 类呢 希望能够没有包袱的IUserModel impor
  • jQuery 打开按按钮选择

    如何通过按钮打开选择下拉菜单 button on click function select trigger click 我的代码 http jsfiddle net UGkWp UPDATE 我找到了针对 webkit 浏览器的解决方案
  • 传递到字典中的模型项的类型为“System.Data.Entity.DynamicProxies.Object”

    有谁知道为什么我会收到此错误 The model item passed into the dictionary is of type system Data Entity DynamicProxies Object 3E186F80358
  • java中的KeyPressed事件

    我刚刚创建了一个java tic tac toe 游戏 我想弄清楚在特定条件下按下回车键后如何运行一个方法 示例如下 if condition is met keyListener 根据您想要捕获 enter 键的位置 您可以使用Actio
  • 清除 Magento 缓存

    我正在使用 Magento 1 6 1 版 我需要以编程方式清除 Magento 缓存 Mage app gt getCache gt clean 我使用了上面的代码 但它没有清除缓存 try this Mage app gt cleanC
  • 如何正确更新我的图表值? (实时)

    我最近遇到了一个名为 LiveChart 的工具 并决定对其进行测试 不幸的是 我在弄清楚如何实时更新图表值时遇到了一些问题 我很确定有一种干净且正确的方法可以做到这一点 但我无法找到它 我希望能够通过更新值private void或按钮
  • ExtJs:在组合框中搜索/过滤

    我在 ExtJs 2 3 中遇到以下问题 我想在组合框中进行搜索 我给你举个例子 Ext comboData names Peter Paul Amanda var store new Ext data SimpleStore fields
  • surfaceView.getHolder 不返回 SurfaceHolder

    我正在尝试编写一个使用相机的应用程序 当尝试获取最终传递给启动相机的 surfaceCreated 的 surfaceHolder 时 我收到 NullPointerException getHolder 是否有返回NULL的情况 than
  • 如何连接 sparql 中的值列表?

    假设我有一个urihttp dbpedia org page Manmohan Singh现在他的标签 dbpprop years 中有一个年份列表 当我写一个查询时 PREFIX rdf
  • 在匿名方法中使用 MethodInfo.GetCurrentMethod()

    public static void Main string args Action a gt Console WriteLine MethodInfo GetCurrentMethod Name a 这段代码将返回一个模糊的字符串 如下所
  • CORS - 是客户端、服务器端还是传输层? [复制]

    这个问题在这里已经有答案了 我试图理解CORS 根据我的理解 它使您能够限制哪些域可以访问服务器上的资源 然而 这似乎并不是故事的全部 例如 我有一个未启用 CORS 的 Web 服务 我无法通过 jQuery 从我的 Web 应用程序访问
  • 具有自签名证书的 Python 3 urllib

    我正在尝试使用 Python 从内部服务器下载一些数据 由于它是内部的 因此它使用自签名证书 我们不想为永远不会出现在 野外 的服务器付费 Python 2 6 版本的代码运行良好 response urllib2 urlopen URL
  • ReactJS:警告:setState(...):无法在现有状态转换期间更新

    我正在尝试从渲染视图重构以下代码
  • Python内存映射

    我正在处理大数据 并且我的矩阵大小约为 2000x100000 因此为了更快地工作 我尝试使用 numpy memmap 来避免由于 RAM 限制而在内存中存储这么大的矩阵 问题是 当我将相同的矩阵存储在两个变量中时 即一个使用 numpy
  • 在 Rails 中存储应用程序特定配置的最佳方法是什么?

    我需要在 Rails 中存储应用程序特定的配置 但它必须是 可在任何文件 模型 视图 助手和控制器 中访问 指定 或未指定 环境 这意味着每个环境都可以覆盖environment rb中指定的配置 我尝试使用environment rb并放
  • 致命错误:未找到类“Illuminate\Foundation\Application”

    当我打开使用 laravel 5 制作的网站时出现以下错误 致命错误 在第 14 行的 C cms bootstrap app php 中未找到 Illuminate Foundation Application 类 我尝试删除供应商文件夹
  • 在运行时加载 Java 字节代码

    我得到了一些在我的程序中生成的java字节代码 因此编译了java源代码 现在我想将此字节码加载到当前运行的 Java VM 中并运行特定的函数 我不知道如何实现这一点 我深入研究了 Java 类加载器 但没有找到直接的方法 我找到了一个解
  • 在 Android 模拟器上通过 appium 或 adb 启用“show_touches”

    是否可以从 appium 启用 android 上的 show touches 选项 还是通过adb 我有一个 appium 测试脚本 它的行为不正常 我不知道为什么 我想看看它到底在哪里点击 adb shell settings put
  • Apollo 客户端:变量未定义。收到状态码 400

    我正在尝试使用 Apollo 客户端在 GraphQL 查询中使用动态变量 我已遵循文档 但 Apollo 不断给我错误 说我的变量未定义 并最终以状态代码 400 进行响应 Apollo 的文档是这样说的 mutate 选项 Mutati