Visual Studio Code - 如何调试节点.js路由

Visual Studio Code - how to debug node.js routes?

本文关键字:调试 节点 js 路由 Code Studio 何调试 Visual      更新时间:2023-09-26

所以我的应用程序结构是这样的:

server.js
    router
       routes
          emails.js
    index.js

我在索引中定义了我的路由.js如下所示:

module.exports = function (app) {
app.use('/emails', require('./routes/emails'));
};

电子邮件.js有一个简单的获取路由,如下所示:

router.get(/*'/emails */'/:id', function (req, res, next) {
   console.log('route hit');
})

我在每一行上放置断点(app.use,router.get 和 console.log)。当我第一次启动我的应用程序时,app.use 和 router.get 的断点被命中。当我进行 API 调用时,我的代码会执行,但永远不会命中断点。

我假设这是一些内部节点.js我需要为其配置 VS 代码的东西,但我不确定如何做到这一点。

有谁知道让它工作的方法?我真的很想使用路由而不是拥有庞大的服务器.js文件,但并非没有使用 IDE 进行调试的能力。

所以我弄清楚了发生了什么...我正在发帖以防其他人发现此问题。解决方案看似简单 - 在服务器中移动此代码.js:

var router = require('./router')(app);

在设置服务器变量之前执行。我没有太多时间深入研究为什么这会有所作为,但我希望它对某人有所帮助......Express 中端点的顺序非常重要!

只需将调试器放在要中断代码并运行节点调试服务器的行上.js即可从终端。

https://nodejs.org/api/debugger.html

我怀疑您已经通过命令提示符打开了应用程序,然后您正在使用VSCode调试器。

不知何故,VSCode 调试器不会抛出有关已占用端口的错误,但如果应用程序已经使用命令提示符启动,则在这种情况下调试不起作用。

关闭从命令提示符启动的应用程序,并将断点放在回调中并尝试。 它有效:)