向 apollo graphql 发送错误
Sending errors to apollo graphql
我有一个这样的查询解析器:
page: (root, args) =>
DB.page
.findById(args.id)
.then((result) => {
if (result == null) throw Error(`Page not found for ${args.id}`);
return result;
})
.catch((error) => {
log.error('Error in page query.', error.message);
}),
当我执行查询时,结果是:
{
"data": {
"page": null
}
}
但是它没有显示我在查询失败时抛出的错误。
我的期望:
{
"errors": [
...
]
}
您在错误抛出后立即捕捉到它。您需要完全省略 catch
,或者在记录错误后抛出捕获的错误:
.catch((error) => {
log.error('Error in page query.', error.message)
throw error
}),
我有一个这样的查询解析器:
page: (root, args) =>
DB.page
.findById(args.id)
.then((result) => {
if (result == null) throw Error(`Page not found for ${args.id}`);
return result;
})
.catch((error) => {
log.error('Error in page query.', error.message);
}),
当我执行查询时,结果是:
{
"data": {
"page": null
}
}
但是它没有显示我在查询失败时抛出的错误。 我的期望:
{
"errors": [
...
]
}
您在错误抛出后立即捕捉到它。您需要完全省略 catch
,或者在记录错误后抛出捕获的错误:
.catch((error) => {
log.error('Error in page query.', error.message)
throw error
}),