所以我的应用程序结构如下:
server.js
router
routes
emails.js
index.js
我在index.js中定义了我的路由,如下所示:
module.exports = function (app) {
app.use('/emails', require('./routes/emails'));
};
并且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调用时,我的代码会执行,但我的断点永远不会被命中。
我假设这是我需要配置VS代码的一些内部Node.js,但我不知道该怎么做。
有谁知道让这个工作的方法?我真的想使用路由而没有庞大的server.js文件,但是没有能力使用IDE进行调试。
答案 0 :(得分:1)
所以我弄清楚发生了什么......我发帖以防其他人发现这个问题。该解决方案看似简单 - 在server.js中移动此代码:
var router = require('./router')(app);
在设置服务器变量之前执行。我没有太多的时间来深入研究为什么这会产生影响,但我希望它有所帮助......快递中的端点顺序非常重要!
答案 1 :(得分:0)
只需将调试器放在要中断代码的行上,然后从终端运行node debug server.js.
答案 2 :(得分:0)
我怀疑您已经通过命令提示符打开了应用程序,然后您正在使用VSCode调试器。
不知怎的,VSCode调试器没有抛出有关已经使用的端口的错误,但是如果app已经使用命令提示符启动,则调试在这种情况下不起作用。
关闭从命令提示符启动的应用程序,并将断点放在回调中并尝试。它有效:)