javascript – 很难在Node-Inspector中设置断点

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

.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');
        }
    });
})

节点检查器运行良好,我熟悉它的设计,因为使用谷歌Chrome开发工具进行基本的JavaScript调试(jQuery等)已有一段时间了.在我尝试登录应用程序之前,一切看起来都很好.它只是在一个setImmediate函数的某个部分跳转到“timer.js”文件,而不是为一个例子“var user”行打破.即使我试图跳过,我也永远不会到达那个断点,我希望看到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的已知问题

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

我还建议你使用NI 0.11.0.实现了网络调试.

点赞