【问题标题】:Output to Chrome console from Node.js从 Node.js 输出到 Chrome 控制台
【发布时间】:2012-07-27 02:31:37
【问题描述】:

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

【问题讨论】:

标签: node.js google-chrome console


【解决方案1】:

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

node-inspector 是您所需要的。 它会打开一个 Chrome 实例,其中包含用于调试的开发人员工具。

它也很容易使用:

1.安装

$ npm install -g node-inspector

2.开始

$ node-debug app.js

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

【讨论】:

【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    现在,您只需在 Chrome 地址栏中输入chrome://inspect,然后点击Open dedicated DevTools for Node

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

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

    • 转译代码的源映射

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

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

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

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

    • 本机承诺的异步堆栈

    希望有所帮助。

    【讨论】:

    • 谢谢,它成功了。唯一的抱怨是断点没有显示在 devTools 中,我不知道为什么......
    【解决方案4】:

    我见过的最接近这个的是Node JS console object debug inspector

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

    【讨论】:

      【解决方案5】:

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

      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 引用:

      // 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),使用 title-info 分组(即服务器说:(文件名 +行)。

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            猜你喜欢
            • 2013-11-19
            • 1970-01-01
            • 2015-01-05
            • 1970-01-01
            • 2015-11-01
            • 1970-01-01
            • 1970-01-01
            • 2013-03-18
            • 2011-05-22
            相关资源
            最近更新 更多