我从 GraphQL 开始,我无法理解我们如何在 GraphQL 中抛出错误
我在网上浏览了几篇文章,但几乎所有文章都使用 Apollo,而且代码结构看起来与我的工作方式大不相同。
考虑这段代码,我在这里进行了修改,现在如何发送带有错误的响应消息并在发生错误时更改标头状态消息?
AddNewPersonalInfo: {
type: userDashboardType,
args: {
parameter: {
type: userCreationlInputType
}
},
resolve: async (parent, args, context) => {
args.parameter.userId = context.req.headers.userId
//Check if user info already exsist
const checkIfUserInformationExsist = await getSelectedThingFromTable('CatsWork_personal', 'userId', `${userId}`)
if (checkIfUserInformationExsist[0]) {
const error = {
code: 403,
message: 'User info Already exsist'
}
throw new Error(error)
} else {
try {
const addLinkedinUser = await insertIntheTable('personal', payload)
return true
} catch (err) {
console.error(err)
throw new Error(err)
}
}
}
}
原文由 anny123 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在我的一个项目中遇到过,很难设置响应的状态代码。所以,我做了一些自定义错误响应来使用 express-graphql 识别正确的 statusCode
下面是示例( _我在我的一个项目中使用过的_):
---—–
app.js file
——–---—–
getErrorCode
功能实现——–---—–
Constant.js
文件——–现在,我们准备好使用我们的设置了。
从您的查询或突变中,您需要需要常量文件并返回自定义错误:
——–错误响应——–
我们只需要从 FS 端编写自定义错误处理。