节点。js中日志信息的案例分析?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
当你开始用JavaScript进行开发时,可能学到的第一件事就是如何用<代码>控制台。日志> 代码将内容记录到控制台。如果你去搜索如何调试JavaScript,会发现数百篇博文和StackOverflow文章都会简单的告诉你用<代码>控制台。日志> 代码。因为这是一种很常见的做法,我们甚至会在代码中使用像<代码> no-console 代码>这样的短绒规则来确保不会留下意外的日志信息。但是如果我们真的想要去记录某些内容呢?
在本文中,我们将梳理各种情况下要记录的日志信息,节点。js中<代码>控制台。日志代码>和<代码>控制台。误差代码>之间的区别是什么,以及如何在不发生混乱的情况下把你库中的日志记录输出到用户控制台。
console.log(“让# 39;s走!”);
理论先行:节点。js的重要细节
虽然你可以在浏览器和节点。js中使用<代码>控制台。日志代码>或<代码>控制台。错误代码> ,但在使用节点。js时要记住一件重要的事。当你在节点。js中将以下代码写入名为<代码>索引。js代码>的文件中时:
console.log(& # 39;你好还有# 39;); console.error(& # 39;再见再见# 39;);
并用<代码>节点索引。js代码>在终端中执行它,你会直接看到两者的输出:
虽然它们看起来可能一样,但实际上系统对它们的处理方式是不同的。如果你查阅节点。js文档的 <代码>控制台/代码>部分,会看到<代码>控制台。日志> 代码是输出到<代码> stdout> 代码而<代码>控制台. error> 代码用的是<代码> stderr 代码>。
每个进程都有三个可用的默认<代码> 代码>。那些是<代码> stdin 代码>,<代码> stdout 代码>和<代码> stderr> 代码。<代码> stdin> 代码流用来在处理进程的输入,例如按下按钮或重定向输出。<代码> stdout> 代码流用于程序的输出。最后<代码> stderr> 代码用于错误消息。如果你想了解为什么会有<代码> stderr> 代码存在,以及应该在什么时候使用它,可以查看这篇文章。
简而言之,这允许我们在shell中使用重定向(<代码>祝辞> 代码)和管道(<代码> | <>/代码)来处理错误和诊断信息,它们是与程序的实际输出结果是分开的。虽然<代码>在代码>允许我们将命令的输出重定向到文件中,但是<代码> 2在代码>允许我们将<代码> stderr> 代码的输出重定向到文件中,例如,下面这个命令会将“你好”传给一个名为<代码>你好。日志> 代码的文件并把传“拜拜”到一个名为<代码>错误。日志> 代码的文件中。
节点索引。js祝辞你好。日志2比;错误。日志
应该在什么时候记录日志?
现在我们已经了解了日志记录的底层技术,接下来让我们谈谈应该在什么情况下记录日志内容。通常应该是以下情况之一:
- <李>在开发过程中快速调试意外行为李> <>李基于浏览器的分析或诊断日志记录李> <>李记录你服务器上传入的请求,以及所有可能发生的故障李> <李>使用库的日志调试选项来帮助用户解决问题李> <>李在CLI输出进度,确认消息或错误信息李>
我们将跳过前两种情况,并重点介绍基于节点。js的后三点。
服务器程序日志
可能你在服务器上记录日志的原因有多种。例如记录传入的请求并允许你从中提取诸如统计信息之类的内容,比如有多少用户在点击时发生了404错误,或者用户浏览器的<代码>用户代理> 代码。你也想知道在什么时候因为什么出错了。
如果你想编码尝试下面的内容,请先创建一个新的项目目录。在目录中创建一个<代码>索引。js代码>并运行以下命令来初始化项目并安装<代码>表达代码>:
npm init - y npm安装表达
让我们设置一个带有中间件的服务器,每个请求只需用<代码>控制台。日志代码>进行输出。将以下内容复制到<代码>索引。js代码>文件中:
node . js中日志信息的案例分析