是否在任何地方都有人类可读的堆栈跟踪?

时间:2019-10-29 06:19:30

标签: apollo react-apollo apollo-client apollo-server

我意识到the docs在谈论这个,但是我的错误看起来并不像那样。

我正在使用React和Apollo Server2。尚未禁用调试,也未将环境设置为生产环境。我的所有错误都是完全无法理解的,除了消息本身之外,什么也没有说。示例:

Error: GraphQL error: Cannot return null for non-nullable field AddSubmissionOutput.id.
    at new ApolloError (bundle.esm.js:76)
    at Object.next (bundle.esm.js:1280)
    at notifySubscription (Observable.js:152)
    at onNotify (Observable.js:196)
    at SubscriptionObserver.next (Observable.js:248)
    at bundle.esm.js:1085
    at Set.forEach (<anonymous>)
    at Object.next (bundle.esm.js:1084)
    at notifySubscription (Observable.js:152)
    at onNotify (Observable.js:196)
    at SubscriptionObserver.next (Observable.js:248)
    at Object.next (bundle.esm.js:32)
    at notifySubscription (Observable.js:152)
    at onNotify (Observable.js:196)
    at SubscriptionObserver.next (Observable.js:248)
    at bundle.esm.js:107

每个单一错误看起来都是这样,并且基本上是没有用的。

我习惯了Laravel,它会说出此错误的确切文件和代码行,而不是“去删除代码行,直到找到它”。我放弃了Apollo,因为它太晦涩难懂了,但是我又在尝试,只是无法超越。

我对它期望太多了吗,还是这里有问题?

1 个答案:

答案 0 :(得分:0)

如果在解析器内(或解析器导入的其他模块内)抛出错误,则会看到相应的堆栈跟踪。但是,上述验证错误并非源于您的代码库,而是将它们引发在库代码中,因此堆栈跟踪将反映出这一点。在这种情况下,该错误与响应验证有关,但相同的行为也适用于错误的查询。