我是graphql的新手,设置服务器graphql使用[https://github.com/graphql/graphql-js] graphql-js。
我跟随他们的文件,一切正常,期望有一个问题:
graphql-js尝试捕获错误,并使用errors: [...]属性返回结果,但在终端控制台中却什么也没说。我希望强制grahql-js返回实际的错误对象,这样我就可以在查看堆栈时调试问题。这是api中的代码
query: (ctx) -> (
await graphql(
schema
query
context
graphContext
variables
)
)我搜索了很多主题,但是没有人说在调试模式下设置这个包,也没有看到任何参数允许set调试。有人知道这事吗?
谢谢!
发布于 2019-02-23 20:06:08
通常,您会使用像express-graphql或apollo-server (或apollo-server-express、apollo-server-hapi等)这样的库。为您的GraphQL API提供端点。除非用例禁止您这样做,否则我强烈鼓励您使用这些库中的一个,因为它们提供了一些对开发和生产都有帮助的附加特性。
只需在配置中提供自定义formatError函数,就可以在使用这些库之一时将日志记录添加到端点。请参阅每个库的文档这里和这里。另外,如果您使用阿波罗,那么整个堆栈跟踪无论如何都会暴露在errors数组中,但只在开发中。
如果您在代码中直接调用graphql函数,那么您可以自己记录错误。对graphql的调用返回一个解析为ExecutionResult对象的承诺,该对象包括数据和错误。所以你可以做这样的事情:
const result = await graphql(/* your args */)
if (result.errors) {
result.errors.forEach((error) => {
// log the error
})
}发布于 2020-04-20 03:11:34
必须在启用调试选项的情况下实例化图形对象,如下所示
var graph = graphql("/api", { debug: true })https://stackoverflow.com/questions/54842718
复制相似问题