graphql-js - 需要帮助来调试此 updateLink 解析器
问题描述
我需要为我的 graphQL 服务器实现一个 updateLink,但它不断抛出“id is not defined”错误。服务器还没有数据库,只有一个用于练习目的的数组。
我已经为更新定义了突变的模式,还编写了解析器,但它只是没有用。我查看了阿波罗文档,看来我的解析器和架构是正确的。
以下是解析器
updateLink:(parent,args)=>{
const link = {
id:args.id,
description:args.description,
url:args.url,
}
links[Number(id)]=link
return link
}
},
以下架构
type Query {
info: String!
feed: [Link!]!
link(id:ID!):Link
}
type Mutation {
post(url: String!, description: String!): Link!
updateLink(id:ID!,url:String!, description: String!): Link
delete(id:ID!):Link
}
type Link {
id: ID!
description: String!
url: String!
}
预期的结果应该是更新链接数组的服务器,但我得到了以下错误。
{
"data": {
"updateLink": null
},
"errors": [
{
"message": "id is not defined",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"updateLink"
]
}
]
}
解决方案
您引用了一个在此处调用的变量id
:
links[Number(id)]=link
但正如错误所示,您尚未定义具有该名称的变量。我建议在你的项目中添加一个 linter 来帮助你捕获这样的错误。
推荐阅读
- c# - Entity Framework Core:在没有外部实体的情况下坚持一对多
- javascript - 尝试将数组项传递给 html 表单中的 getElementById() 选择选项
- python - Python csv.DictReader 内存不足
- excel - 打开多个 Excel 实例时如何通过 Excel 宏将数据从 Excel 导出到 Access
- wso2-am - API Manager 2.6.0 无法启动——找不到 carbon.xml 文件,但安装成功
- function - JS - 定义显示煎茶窗口功能
- c - 在 C 中通过数组名称和指针访问二维数组元素
- php - Wordpress 更新 5.0.2 删除了 WPBakery 插件模板
- mysql - SQL 在服务器上与 phpmyadmin 一起工作,但在 XAMPP 中不工作
- django - Django 表单 - 有没有办法动态编辑 FilePathField?