gpt4 book ai didi

node.js - GraphQL-突变响应后的自定义错误消息

转载 作者:行者123 更新时间:2023-12-03 08:20:07 25 4
gpt4 key购买 nike

我正在学习Graphql,但有一个问题,我无法继续进行下去。

在后端(nodeJS)中,您可以输入新闻通讯列表,它可以正常工作。
如果电子邮件地址已经存在,Mailchimp将返回“成员存在”。到目前为止,一切都很好。

如果我理解正确,答案必须采用相应类型的格式。
现在,如果注册不起作用,我想发出一条自定义消息。

那么,我该如何准确地调整正确的响应并发送自定义消息呢?

突变:

createNewsletterSubscription(
data: CreateNewsletterSubscriptionInput
): NewsletterSubscription!

以及类型:
type NewsletterSubscription {
email: String!
name: String!

}

给出“成员存在”的响应:
JSON.parse(error.response.text).title

变异方法:
async createNewsletterSubscription(parent, args, { db }, info) {
const { name, email } = args.data;
const newEmailSubscription = {
email,
name,
};

const FNAME = name;

try {
const result = await request
.post( `https://${mailchimpInstance}.api.mailchimp.com/3.0/lists/${MAILCHIMP_LIST_ID}/members`
)
.set(
'Authorization',
// eslint-disable-next-line no-buffer-constructor
`Basic ${new Buffer(`any:${MAILCHIMP_APIKEY}`).toString(
'base64'
)}`
)
.send({
email_address: email,
status: 'subscribed',
merge_fields: {
FNAME,
},
});

if (result.status === 200 && result.body.status === 'subscribed') {
return newEmailSubscription;
}
} catch (error) {
// If member exists throw new error
return JSON.parse(error.response.text).title;
}
},

这是我的GraphQL Playgrund中的输出:
{
"data": null,
"errors": [
{
"message": "Cannot return null for non-nullable field NewsletterSubscription.email.",
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"createNewsletterSubscription",
"email"
]
}
]
}

最佳答案

} catch (error) {
// If member exists throw new error
return JSON.parse(error.response.text).title;
}


您不能只返回简单的响应-看起来像普通的响应,而不是错误。

在apollo服务器 docs上详细解释了处理错误

关于node.js - GraphQL-突变响应后的自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59809768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com