2012-07-28 158 views
16

我正在寻找一种方法将节点变量直接输入到Chrome浏览器控制台。 console.log()在客户端工作方式相同。类似于this for php。这将大大加快发展。从Node.js输出到Chrome控制台

+1

这不完全调试的VSC和Chrome浏览器的代码,你在找什么,但看看节点发现-inspector,https://github.com/dannycoates/node-inspector/。 – 2012-07-28 20:18:06

回答

19

注: 由于旧的回答(写于2014年9月)是指旧版本的node-inspector,我的说明在2017年不再相关。此外,文档已经变得更好,所以我更新了我的原始答案:

节点检查员是你所需要的。使用其开发者工具进行调试,它打开了Chrome的一个实例。

它也很容易使用:

安装

$ npm install -g node-inspector 

2.开始

$ node-debug app.js 

来源:https://github.com/node-inspector/node-inspector

1

对于用户与linux上的nodejs通过ssh-shell(putty):

linux-ssh-shell上nodejs的问题是,您没有连接浏览器。 我试过所有这些解决方案,但没有得到它的工作。

所以我制定了一个解决方案与火力点(https://firebase.google.com),因为我的项目使用firebase。 如果您熟悉Firebase,那么这是一个好方法。如果没有,firebase值得与nodejs结合使用 - 并且免费!

在服务器端脚本(开始节点)使用自己的功能日志():

// server-side: 
// using new firebase v3 ! 
var fbRootRef = firebase.database(); 
var fbConsoleRef = fbRootRef.ref("/console"); 
var log = function(args) { 
    fbConsoleRef.set({'obj': args}); 
} 

// inside your server-code: 
log({'key':'value'}); 

在客户端创建此控制台对象的火力点参考:

// client side: 
fbRootRef.child('/console').on('value', function(d) { 
    var v = d.val(); 
    console.log(v); 
}); 

现在,使用log()函数在服务器端登录的所有内容都会实时传送到firebase数据库,并从那里触发客户端控制台引用并登录到浏览器控制台。

如果有人需要帮助,我会更详细地解释一下,并且可以给这个记录的扩展版本加上类型(console./log/warn/info),标题信息分组(即服务器: +行)

为您的项目设置firebase最长30分钟,在30分钟内插入控制台功能,我认为它值得的时间!

0

这是很酷的视频我就如何通过 安德鲁·米德

You tube link