调试在node.js的vm中运行的代码

时间:2014-01-17 10:21:58

标签: node.js

我遇到以下问题 - 我试图在使用vm模块运行的代码中调试/设置断点。我发现完成此任务的唯一方法是通过调试器语句:

// client code, loaded in the vm module
function printMessage() {
    debugger;
    return 56;
}

printMessage();

还有其他方法可以实现吗?最好使用节点检查器等工具吗?

编辑:找到一个解决方案 - 将“filename”的字符串传递给vm的执行函数。例如:

vm.runInThisContext(codeToRun, "someFilename.js");

这样调试器“计算出”代码来自何处。

1 个答案:

答案 0 :(得分:1)

正如您所提到的,node-inspector是此任务的理想选择。您是否可以直接启动node-debug someFilename.js并在界面中设置断点?

另一种方法是使用debugger,然后运行node debug someFilename.js并使用setBreakpoint('someFilename.js', 10)等命令

您可以在节点文档中找到更多信息:https://nodejs.org/api/debugger.html