如何在 JavaScript 中调试 GraphQL 解析器?
How do I debug a GraphQL resolver in JavaScript?
我正在学习 howtographql.com 上的教程,该教程创建了一个非常基本的 GraphQL 服务器,其中包含内存数据和用 JavaScript 编写的解析器。我一直遇到问题,我希望能够在解析器中放置一个断点,但是当我是 运行 GraphQL 游乐场 GUI 时,我在 DevTools 的源面板中看不到任何东西,并且在代码中放置 debugger
行也不会阻止它。
如何调试解析器?
架构
type Mutation {
updateLink(id: ID!, url: String, description: String): Link
}
解析器(我使用的是immutable.js的地图;可能不正确)
let links = [
{
id: "link-0",
url: "www.howtographql.com",
description: "Fullstack tutorial for GraphQL",
},
]
const resolvers = {
Mutation: {
updateLink(root, args) {
const linkIndex = links.findIndex(link => link.id === args.id);
const state = links.map(link => {
debugger;
if (link.id === args.id) {
const map = Map(link);
return map
.set("url", args.url || link.url)
.set("description", args.description || link.description);
}
return link;
});
links = state;
return state[linkIndex];
},
}
服务器上的解析器 运行。服务器的代码不会出现在 DevTools 的源面板中。您必须使用 IDE 中的 NodeJS 调试器来调试解析器
我正在学习 howtographql.com 上的教程,该教程创建了一个非常基本的 GraphQL 服务器,其中包含内存数据和用 JavaScript 编写的解析器。我一直遇到问题,我希望能够在解析器中放置一个断点,但是当我是 运行 GraphQL 游乐场 GUI 时,我在 DevTools 的源面板中看不到任何东西,并且在代码中放置 debugger
行也不会阻止它。
如何调试解析器?
架构
type Mutation {
updateLink(id: ID!, url: String, description: String): Link
}
解析器(我使用的是immutable.js的地图;可能不正确)
let links = [
{
id: "link-0",
url: "www.howtographql.com",
description: "Fullstack tutorial for GraphQL",
},
]
const resolvers = {
Mutation: {
updateLink(root, args) {
const linkIndex = links.findIndex(link => link.id === args.id);
const state = links.map(link => {
debugger;
if (link.id === args.id) {
const map = Map(link);
return map
.set("url", args.url || link.url)
.set("description", args.description || link.description);
}
return link;
});
links = state;
return state[linkIndex];
},
}
服务器上的解析器 运行。服务器的代码不会出现在 DevTools 的源面板中。您必须使用 IDE 中的 NodeJS 调试器来调试解析器