javascript - 使用 VSCode 调试 Nextjs Api 端点

标签 javascript debugging next.js

目前,我必须手动查找要在 /api 中设置断点的文件(api 端点) VSCode 中的文件夹。
我有以下 launch.json :

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "attach",
      "name": "Attach to application",
      "skipFiles": ["<node_internals>/**"],
      "port": 9229
    }
  ]
}
每当有对该特定 Nextjs Api 路由的传入请求时,有没有办法自动停止或设置断点?
例如,假设我有一个 /api/data.tsx :
import { NextApiRequest, NextApiResponse } from 'next';
import { StatusCodes } from 'http-status-codes';
import getConfig from 'next/config';

export default async (req: NextApiRequest, res: NextApiResponse): Promise<void> => {
   console.log('do some logging');
   res.status(StatusCodes.OK).json({message: 'Good job buddy!'});
}

并想在 console.log 上停下来在每个传入的请求上。我该怎么做?

最佳答案

单击 VSCode 的侧边栏以放置红点时,我遇到了同样的问题。
好消息是仍有办法。在 VSCode 中,与其单击在所需行上设置红点,不如在该行上编写调试器。不知道为什么它会以一种方式工作而不是另一种 - 也许还有一种调整可以使点击设置点真正起作用?到目前为止,这对我来说与 api 路由一样好:npm run dev现在使用以下 launch.json 附加调试器。 (我的 next.js 项目位于我的工作区文件夹的子文件夹中,所以我自己的配置需要反射(reflect)这一点。下面的配置假定 Next.js 项目根目录与 $workspaceFolder 相同。)

{
    "name": "Attach",
    "port": 9229,
    "request": "attach",
    "webRoot": "${workspaceFolder}", // mine had another subfolder here
    "cwd": "${workspaceFolder}",     // and here
    "skipFiles": [
        "<node_internals>/**"
    ],
    "type": "pwa-node"
},
现在在 VSCode 中,无论您想要断点在哪里:
handler.get(async (req, res) => {
  debugger;

  console.log....
});
Should end up with something like this

关于javascript - 使用 VSCode 调试 Nextjs Api 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69513546/

相关文章:

javascript - Angular js foreach只返回数组中的最后一项

android - 结合使用jeremyfeinstein.slidingmenu和ActionBarSherlock可以将 “AAPT: error: duplicate value for resource ' attr/background'与 ''配置一起使用。”

c - 子 Makefile.am 中的标志

javascript - React HTMLAudioElement 不会暂停

javascript - 使用 next.js 监听路由更改以与 matomo/piwik 一起使用

reactjs - 它的返回类型 'Element | undefined' 不是一个有效的 JSX 元素。类型 'undefined' 不可分配给类型 'Element | null'

javascript - 用JS动态添加输入然后用PHP查找?

javascript - $this->input->post() 在 codeigniter 中总是空的

java - 在 Brackets 编辑器或 Visual Studio Code 中调试 Java

javascript - 在 Azure 函数中检索设备孪生信息?