通过节点检查器运行控制台命令?

时间:2013-07-31 15:45:32

标签: node.js node-inspector

我已将节点检查器连接到正在运行的node.js程序。但是我想通过控制台发出命令 - 不一定是在断点上。例如,我的s​​erver.js程序中有全局变量和函数。例如:

var express = require('express');
var app = express();

function test() {
    console.log('yo');
}

app.listen(3000);

现在在节点检查器中我进入控制台并输入'test()'并返回“ReferenceError:test is not defined”,与全局变量相同我输入'app'它告诉我它没有定义。知道如何使这个东西工作吗?我只想运行我的节点程序,然后通过命令行界面向它发出命令。

2 个答案:

答案 0 :(得分:3)

@foreyez,

您的问题激发我创建一个npm模块,它允许您调试(通过命令行)正在运行的node.js应用程序,而无需设置断点或需要创建变量global

https://github.com/go-oleg/debug-live

希望有所帮助!

答案 1 :(得分:1)

它无法正常工作的原因是您的所有变量和函数都是模块(应用程序)的本地变量,并且您无法从全局上下文中访问它们。

如果要从任何地方访问它们(包括在断点处未停止时从控制台访问),可以将它们保存在全局范围内:

var express = require('express');
var app = express();

function test() {
    console.log('yo');
}

app.listen(3000);

global.test = test;