GraphQL - 参数未在突变中传递到后端
Posted
技术标签:
【中文标题】GraphQL - 参数未在突变中传递到后端【英文标题】:GraphQL - Parameters not being passed to backend in mutation 【发布时间】:2022-01-24 04:06:39 【问题描述】:我刚开始使用 GraphQL 和突变,遇到了这个问题。
当我尝试将数据传递到我的 GraphQL 服务器时,似乎 args 参数没有注册我尝试传递的 args。
当我console.log
他们时,他们显示为undefined
,但该方法正在工作并接收请求。
下面有什么不正确的地方吗?我只是在思考它,所以如果有任何反馈,我将不胜感激。
这是我尝试从 GraphiQL 运行的查询
mutation
addDelivery(
carrier: "AusPost",
goodsDelivered:[],
receiver:
first_name:"ll",
last_name:"test",
receiver_email: "bbb@bbb.com.au"
,
consignmentNumber:"AAAA000",
poNumber:"PO0000"
)
id
carrier
iD
carrier_name
我的架构:
type ReceiverType
first_name: String
last_name: String
receiver_email: String
type ItemType
item_type: String,
quantity: String
type Deliveries
carrier: Carrier
consignmentNumber: String
goodsDelivered: [String]
id: ID
items: [ItemType]
poNumber: String
receiver: ReceiverType
type Carrier
iD: ID
carrier_name: String
input Item
item_type: String,
quantity: String
type Query
deliveries: [Deliveries]
input Receiver
first_name: String
last_name: String
receiver_email: String
type Mutation
addDelivery(
carrier: String!,
consignmentNumber: String!,
goodsDelivered: [Item]!,
poNumber: String!,
receiver: [Receiver]!
) : Deliveries
我的添加交付解析器
addDelivery: async (parent, args, context, info) =>
const delivery = new Deliveries(
receiver:
first_name: args.first_name,
last_name: args.last_name,
receiver_email: args.receiver_email
,
items: args.items,
consignment_no: args.consignment_no,
po_number: args.po_number,
carrier_id: args.carrier_id,
delivery_id: args.delivery_id
);
await delivery.save();
return delivery;
【问题讨论】:
【参考方案1】:我将签名更改为以下,它解决了问题。
addDelivery: async (receiver, items, consignment_no, po_number, carrier_id, delivery_id) =>
【讨论】:
以上是关于GraphQL - 参数未在突变中传递到后端的主要内容,如果未能解决你的问题,请参考以下文章
在 type-graphql 突变中传递多个参数以及 `GraphQLUpload`