graphql - 我的突变有什么问题?试图用graphql在对象之间建立简单的关系
问题描述
我很困扰。我有一个简单的例子,其中数据库模式中有两个对象。对象是区域和路线。一个区域可以有很多条路线。每条路线属于一个区域。我相信我的数据库模型很好,所以我不会分享。我认为我的错误出现在我的 typeDefs 中,我在其中创建了一个突变“addRoute”。在我开始之前,graphql 查询“区域”的期望结果看起来像这样(格式可能不正确)......
{
"data": {
"areas": [
{
"areaName": "Area A",
"routes": [
"routeName": "route 1"
]
}
]
}
}
这是我的 typeDefs。是 addRoute 突变的问题吗???
const { gql } = require('apollo-server-express');
const typeDefs = gql`
type Area {
_id: ID
areaName: String!
routes: [Route]!
}
type Route {
_id: ID
routeName: String!
}
type Query {
areas: [Area]
}
type Mutation {
addRoute(routeName: String, areaID: ID). #IS THIS CORRECT?????
}
`;
module.exports = typeDefs;
这是我的解析器。问题出在这里吗?
const { AuthenticationError } = require('apollo-server-express');
const { Area, Route } = require('../models');
const resolvers = {
Query: {
areas: async() => {
return await Area.find().populate('routes');
}
},
Mutation:{
addRoute: async() => (parent, {routeName}) => { #IS THIS CORRECT???
const route = await Route.create({routeName})
},
}
}
最后,这是我在 GraphQL 本身中编写此查询的尝试。
mutation addRoute($routeName: String!, $areaID: ID!) {
addRoute(routeName:$routeName, areaID:$areaID) {
_id
routeName
areaID
}
}
这是我对这个突变的查询变量。假设我有一个 ID 如下的现有区域...
{
"routeName": "Route 1",
"areaID": "61816788cd2c4a3514a9b06c"
}
我已尽我所能尽可能简化这个例子。
解决方案
推荐阅读
- ibm-cloud - IBM Watson IoT Platform - 如何获取设备的最后事件/状态
- c++ - 有没有办法使用 nana 库选择随机按钮?
- java - 使用 IntelliJ 调试混淆的应用程序
- r - 将 A 列的任何值与 B 列中的任何值进行比较
- websocket - 通过 ABAP 推送通道(TCP 套接字)接收响应时发生超时错误
- python - 查找、替换和连接字符串
- javascript - 如果 2 秒后未检测到移动,则显示 div/按钮
- java - 使用 JAXB 重命名 xsd 中的枚举
- php - jquery ajax后混合数组对象将空数组发送到php
- javascript - Javascript toFixed() 没有尾随零