debugging 如何在JavaScript中调试GraphQL解析器?

rqqzpn5f  于 2022-12-19  发布在  Java
关注(0)|答案(2)|浏览(188)

我正在学习howtographql.com的教程,它创建了一个非常基本的GraphQL服务器,其中包含内存数据和用JavaScript编写的解析器。我一直遇到一些问题,我希望能够在解析器中放置断点,但当我运行GraphQLPlaygroundGUI时,我在DevTools的源代码面板中看不到任何东西,在代码中放置debugger行也无法阻止它。
如何调试解析器?

架构

type Mutation {
  updateLink(id: ID!, url: String, description: String): Link
}

解析器(我使用immutable.js的Map;可能不正确)

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];
    },
}
neskvpey

neskvpey1#

解析器在服务器上运行。服务器的代码不会显示在DevTools的“源”面板中。必须使用IDE中的NodeJS调试器来调试解析器

sc4hvdpw

sc4hvdpw2#

您可以使用“从VS代码自动附加:
1.按照官方文档进行设置:https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach
1.如果选择“onlyWithFlag”,则需要使用node --inspect index.js启动,文件index.js是启动服务器的位置
1.在冲突解决程序中设置调试点
1.打开本地GraphQL资源管理器并运行一些查询,您将看到调试器已连接

相关问题