使用VSCode调试器时未执行Node.js回调

Node.js callback not executed when using VSCode debugger

本文关键字:Node js 回调 执行 VSCode 调试器 使用      更新时间:2023-09-26

我有一个VSCode Node.js调试器的问题。

我有以下代码(它下载图像并计算其散列):

var request = require('request');
var crypto = require('crypto');
request({ uri : 'http://static.wixstatic.com/media/28f6fa_1519eb247c97446098566248a9f86441.jpg', 
    encoding: null, 
    timeout: 10000 
    }, function (err, res, body) {
    if (err) {
        return res.status(500).send(err);
    }
    if (res.statusCode !== 200) {
        return res.status(500).send(buildResponse(500, "Image download returned status code " + res.statusCode));
    }
    console.log(crypto.createHmac('sha256', body).digest('hex'));
});

如果我运行node test.js,它会完美地打印文件的哈希值。如果我使用VSCode调试模式运行它,它不会。

如果我在第4行(request({...)设置一个断点,调试器就会到达断点。如果我在第8行(if (err) { ...)设置一个断点,调试器不会碰到断点。

是我做错了什么还是这是一个bug?

$ node -v
v4.6.0

VSCode version: 1.6.1 Recovery Build

使用节点检查器对我来说是调试后端代码的更好方法

这里是链接,这里有完整的指南,可以从

开始https://www.npmjs.com/package/node-inspector

顺便说一下,如果你想调试某个特定的文件,请使用node-debug

node-debug my_file_to_debug.js