【问题标题】:HTTP Server and Console.log at Node jsNode js 上的 HTTP 服务器和 Console.log
【发布时间】:2021-11-12 11:58:41
【问题描述】:

我是 node js 的新手,并尝试通过一些示例来学习,所以我的要求是我应该在浏览器控制台模式下获得输出,我想通过 HTTP 服务器以及在控制台中检查它,但仅打印数据在浏览器页面上,但没有得到任何控制台输出。

代码:

require('http').createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Data render at browser page');
    console.log('print in browser console ');   
}).listen(4000); 

【问题讨论】:

  • console.log('print in browser console ') 服务器上运行,而不是在浏览器中。
  • 您无法在浏览器中显示您正在服务器中打印的日志,这是不可能的,因为代码在不同的机器上执行。
  • @A.Llorente 我没听懂,我们不能在浏览器中运行,但是我们在 4000 端口运行
  • 是的,但是您在端口 4000 上运行服务器并显示控制台(这是一台机器),然后您通过浏览器(另一台机器)访问它。您的服务器与您的客户端在相同的硬件上运行这一事实并不能使它们成为相同的“机器”,或者更好地称为“执行环境”

标签: javascript node.js


【解决方案1】:

您可以发送 HTML 响应并添加脚本标记:

/********** Node.js start ********/
/* This code is run in Node.js */
require('http').createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('' +
`<html>
  <head></head>
  <body>
    Data render at browser page
    <script>
      /********** Browser start ********/
      /* This code is run in the browser */
      console.log('print in browser console ');
      /********** Browser end ********/
    </script>
  </body>
</html>`);
    console.log('print in Node.js engine');   
}).listen(4000);
/********** Node.js end ********/

【讨论】:

    【解决方案2】:

    Node Js 不在浏览器中运行,因此您看不到任何console.log() 输出到浏览器控制台,而是显示在终端中。

    【讨论】:

      【解决方案3】:

      如果您是第一次使用 node.js,会有点困惑,因为它运行在服务器上而不是客户端浏览器上。

      话虽如此,现在实际上可以将节点控制台输出通过管道传输到浏览器控制台。请查看这个 github repo connect-browser-logger on github

      您也可以使用这里提到的NodeMonkey - Output to Chrome console from Node.js

      【讨论】:

        猜你喜欢
        • 2016-02-26
        • 1970-01-01
        • 2015-08-17
        • 2015-10-06
        • 1970-01-01
        • 2014-06-29
        • 1970-01-01
        • 1970-01-01
        • 2018-02-18
        相关资源
        最近更新 更多