Javascript graphqljs-如何获取文件名和错误行
我正在使用graphqljs和Javascript graphqljs-如何获取文件名和错误行,javascript,node.js,graphql,graphql-js,Javascript,Node.js,Graphql,Graphql Js,我正在使用graphqljs和expressgraphql。每当我出现错误时,我都会得到一些模糊的信息,比如“Expected type Int!”,发现“1\”具有无效的位置属性: "locations": [ { "line": 3, "column": 42 } ], 如何获取文件名及其行 错误如下: "{ "errors": [ { "json": "{\"message\":\"Expec
expressgraphql
。每当我出现错误时,我都会得到一些模糊的信息,比如“Expected type Int!”,发现“1\”
具有无效的位置属性:
"locations": [
{
"line": 3,
"column": 42
}
],
如何获取文件名及其行
错误如下:
"{
"errors": [
{
"json": "{\"message\":\"Expected type Int!, found \\\"1\\\".\",\"locations\":[{\"line\":3,\"column\":42}]}",
"message": "Expected type Int!, found \"1\".",
"locations": [
{
"line": 3,
"column": 42
}
],
"stack": [
"GraphQLError: Expected type Int!, found \"1\".",
" at isValidScalar (/Applications/MAMP/htdocs/whylookforit-server/node_modules/graphql/validation/rules/ValuesOfCorrectType.js:164:27)",
" at Object.StringValue (/Applications/MAMP/htdocs/whylookforit-server/node_modules/graphql/validation/rules/ValuesOfCorrectType.js:128:14)",
" at Object.enter (/Applications/MAMP/htdocs/whylookforit-server/node_modules/graphql/language/visitor.js:333:29)",
" at Object.enter (/Applications/MAMP/htdocs/whylookforit-server/node_modules/graphql/language/visitor.js:384:25)",
" at visit (/Applications/MAMP/htdocs/whylookforit-server/node_modules/graphql/language/visitor.js:251:26)",
" at validate (/Applications/MAMP/htdocs/whylookforit-server/node_modules/graphql/validation/validate.js:63:22)",
" at /Applications/MAMP/htdocs/whylookforit-server/node_modules/express-graphql/dist/index.js:154:52",
" at processTicksAndRejections (internal/process/next_tick.js:81:5)"
]
}
]
}"
所有graphql代码都被捆绑到一个大模式中,只有在完成后,coge才会运行。如果模式运行时出现错误,代码将不再引用最初定义的文件。如果使用
formatError
,对于执行错误,可以访问路径属性在这些情况下,堆栈通常也会显示错误发生的文件
您在此处看到的错误是由于您发送的文档无效而引发的验证错误。由于它不是执行错误,因此无需在服务器端修复。客户端,您需要修复查询。locations
属性告诉我们错误位于文档第3行的42n处该行的d字符。不幸的是,我认为没有办法仅从错误中识别特定节点。这正是我已经知道的,这就是我问题的输出。@a.Lau抱歉,完全误解了问题。请查看更新的答案。