Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js:如何远程调试?_Javascript_Node.js_Debugging_Node Inspector - Fatal编程技术网

Javascript Node.js:如何远程调试?

Javascript Node.js:如何远程调试?,javascript,node.js,debugging,node-inspector,Javascript,Node.js,Debugging,Node Inspector,我有一台Linux服务器(os:Centos,ip:192.168.1.100)和我要调试的节点应用程序。 由于某种原因@office我必须在远程客户端(ip:192.168.1.7)上工作,因为Linux服务器没有GUI/浏览器 我确实按照说明使用了节点检查器,但没有成功 以下是我所做的: $ npm --version 2.14.2 $ node --version v4.0.0 $ npm install -g node-inspector $ node-inspector --ve

我有一台Linux服务器(os:Centos,ip:192.168.1.100)和我要调试的节点应用程序。
由于某种原因@office我必须在远程客户端(ip:192.168.1.7)上工作,因为Linux服务器没有GUI/浏览器

我确实按照说明使用了节点检查器,但没有成功

以下是我所做的:

$ npm --version
2.14.2

$ node --version
v4.0.0

$ npm install -g node-inspector

$ node-inspector --version
Node Inspector v0.12.3

$ node-debug myApp.js
Node Inspector is now available from http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858
Debugging `myApp.js`

Debugger listening on port 5858
然后如果我打开我的客户端浏览器到
http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858
,我得到错误
ERR\u ADDRESS\u无法访问

如果将客户端浏览器打开到
http://192.168.1.100:8080/?ws=192.168.1.100:8080&port=5858

如果(出于好奇)我打开
http://192.168.1.100:5858
我刚刚得到:

Type: connect
V8-Version: 4.5.103.30
Protocol-Version: 1
Embedding-Host: node v4.0.0
Content-Length: 0
我已经在防火墙上打开了8080和5858端口(为了安全起见)(在
/etc/sysconfig/iptables中)我有:

...
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5858 -j ACCEPT
...
)

我错过了什么


更新: 在@aleung建议之后,我确实将
webhost=0.0.0.0
标志添加到
node debug
命令行,但没有取得很大成功:我总是在浏览器中获得
ERR\u ADDRESS\u unreable
。甚至是来自
192.168.1.7
客户端的
telnet 192.168.1.100 8080
超时。相反,telnet 192.168.1.100 5858回答:

Type: connect
V8-Version: 4.5.103.30
Protocol-Version: 1
Embedding-Host: node v4.0.0
Content-Length: 0

这可能意味着调试器正在侦听,但仍然无法从客户端界面访问它:-(

默认情况下,node inspector web server在127.0.0.1上侦听,仅接受来自本地主机的连接。您必须在服务器上使用选项
--web host=0.0.0
启动node inspector:

$ node-debug --web-host 0.0.0.0 myApp.js
然后打开您的客户端浏览器至
http://server:8080/?ws=server:8080&port=5858
,其中服务器是您的服务器IP。

节点7.x

node--inspect:file_name

谢谢!我想你的意思是--web主机,因为否则我会得到
无法启动web主机=0.0.0.0:not found:web主机=0.0.0
…但是,尽管你的建议看起来很有希望,但我还是会在浏览器上得到
ERR_ADDRESS\u unable
。(几秒钟后):-(注意--webhost=0.0.0.0似乎在做它的工作,因为netstat告诉我node现在正在监听0.0.0.0:8080,而不是127.0.0.1:8080…@MarcoS it's
--webhost
,已修复。)。