难以在 Node-Inspector 中设置断点

Hard to set up breakpoints in Node-Inspector

我已经设置了一个可用的 Web 应用程序,现在我想学习如何在不使用 console.log 的情况下正确调试它。我已经通过 node-debug server.js(主脚本文件)设置和 运行 Node-Inspector,我想使用并检查当我为以下 [=34] 中的示例设置断点时会发生什么=]函数。

.post('/login', function (req, res){
    var user = {
        username: req.body.username,
        password: hash(req.body.password)
    };
    db.findOne(user, function (err, data) {
        if (data) {
            req.session.userId = data.id;
            res.redirect('/');
        } else {
            res.redirect('/login');
        }
    });
})

节点检查器工作得很好,我熟悉它的设计,因为使用 Google Chrome 开发人员工具进行基本 JavaScript 调试(jQuery 等)时间。在我尝试登录应用程序之前,一切看起来都很好。它不是中断示例 "var user" 行,而是简单地以某种 setImmediate 函数跳入 "timer.js" 文件。即使当我尝试跳过时,我也永远不会到达我希望看到 post 函数在 req、res 变量等中包含什么的断点。

我正在使用 NodeJS v0.12.2 和 node-inspector 0.10.0。

我在项目中使用了 body-parser、bourne、express 和 express-session 模块。也许值得一提的是,我 运行 应用程序在与 8080 或 5858 不同的端口上,如果可能是这种情况,我还在另一个 .js 文件中有指定的代码,因为我可以成功断点前几个(需要) 主服务器 js 文件的行。

我不知道该做什么或如何在简单的 if 语句中设置断点。它只是简单地进行了一些 timers.js 并且完成了一些步骤。

知道为什么会这样吗?

提前致谢。

这是节点 0.12 的已知问题。* https://github.com/joyent/node/issues/25266

因此,作为解决方法,您可以使用 debugger 语句或切换到 iojs 进行调试。

我也推荐你使用NI 0.11.0。实现了网络调试