25

我正在寻找一种将 Node 变量直接输出到 google chrome 浏览器控制台的方法。与 aconsole.log()在客户端工作的方式相同。像这样的 php。这将大大加快开发速度。

4

7 回答 7

22

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

节点检查器是您所需要的。它使用其开发人员工具打开一个 Chrome 实例以进行调试。

它也很容易使用:

1.安装

$ npm install -g node-inspector

2.开始

$ node-debug app.js

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

于 2013-11-05T10:29:40.027 回答
6

您可能想尝试 NodeMonkey - https://github.com/jwarkentin/node-monkey

于 2013-08-19T16:53:19.687 回答
5

我知道这是一个老问题,但出现在我的谷歌搜索之上,所以也许有人会发现我的答案很有用。

所以你可以使用node --inspect-brk index.js

现在,您所要做的基本上就是chrome://inspect在您的 Chrome 地址栏中输入并点击Open dedicated DevTools for Node

在现在连接到 Node 的 DevTools 中,您将拥有您习惯使用的所有 Chrome DevTools 功能:

  • 完整的断点调试,带黑盒的单步执行

  • 转译代码的源映射

  • LiveEdit:使用 V8 的 JavaScript 热插拔评估

  • 带有 ES6 功能/对象支持和自定义对象格式的控制台评估

  • 使用火焰图采样 JavaScript 分析器

  • 堆快照检查、堆分配时间线、分配分析

  • 本机承诺的异步堆栈

希望有帮助。

于 2018-06-26T10:19:35.207 回答
3

我见过的最接近这个的是Node JS 控制台对象调试检查器

有关用法和潜在问题,请参阅此帖子:http: //thomashunter.name/blog/nodejs-console-object-debug-inspector/

于 2012-07-28T20:17:13.387 回答
2

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

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

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

在服务器端脚本(从节点开始)中使用自己的函数 log():

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

在客户端,您在此控制台对象上创建一个 firebase-reference:

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

现在,使用 log() 函数登录服务器端的所有内容都实时传输到 firebase-database 并从那里触发 client-console-reference 并登录到浏览器控制台。

如果有人需要帮助,我将更详细地解释,并可以提供此日志记录的更扩展版本,其中包含类型(console./log/warn/info),与标题信息分组(即服务器说:(文件名 + 行)。

为您的项目设置 firebase 最多需要 30 分钟,插入控制台功能需要 30 分钟。我认为它值得花时间!

于 2016-06-21T23:24:55.310 回答
0

您可以使用bonsole,这是一种在浏览器中记录内容的简单方法。即使在Linux下,也可以去局域网的ip查看。

于 2019-07-14T00:03:42.650 回答
0

依赖最少的最简单方法是使用 WebSocket 连接将消息发送到浏览器。您可以在 Internet 上找到的任何 WebSocket 示例都足以完成此操作。其他所有内容都需要大量集成到主机系统中,如果您想在远程服务器上实际运行它,则无法正常工作。您也可以通过这种方式直接从浏览器控制台向服务器发送命令。

链接:
https ://www.npmjs.com/package/websocket
https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications

于 2021-05-31T19:27:26.787 回答