如何使用Llama Logs显示和调试NodeJS错误?

本篇文章给大家介绍一下node开发神器–llama logs,使用llama logs实时可视化node错误。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

如何使用Llama Logs显示和调试NodeJS错误?

相关推荐:《nodejs 教程》

你是否想知道程序内部发生了什么?是否希望以视觉方式检查其内部运作?

上面的动图显示了Llama Logs的一个例子。它是我创建的一个新工具,让你实时看到你的应用程序的内部运作。它已经准备好了,你可以开始在你的应用程序中免费使用。

下面,我将通过一个示例演示如何使用Llama Logs显示和调试基本Express应用程序中发生的错误。

开始

我将编写一个基本的快速应用程序,该应用程序通过url参数接收用户的电子邮件,如果该电子邮件是 llamalogs.com 域,则将其保存到数据库中。

基本逻辑将如下所示

app.get('/', (req, res) => {  let customerEmail = req.query.email  let isDomainOk = domainCheck(customerEmail)  if (isDomainOk) {      saveEmail(customerEmail)  }  res.send('We received your email')})

登录后复制

现在的问题是,我要写一些检查的代码,如果用户忘记在邮件中包含 @domain 部分,就会出错。

const domainCheck = (customerEmail) => {  // toLowerCase will fail if the [1] value is undefined!  const domain = customerEmail.split("@")[1].toLowerCase()  const domainIsOk = domain === "llamalogs.com"  return domainIsOk}

登录后复制

使用Llama Logs进行可视化

Llama Logs的设置非常简单。一旦你注册了llamalogs.com,你所需要做的就是通过npm安装客户端,然后开始然后开始记录,Llama Logs将自动将你的日志转换为交互式图形。

因此,例如,让我们将 domainCheck 方法更新为以下内容

const domainCheck = (customerEmail) => {  try {    const domain = customerEmail.split("@")[1].toLowerCase()    const domainIsOk = domain === "llamalogs.com"    LlamaLogs.log({ sender: 'Server', receiver: 'Domain Check' })    return domainIsOk  } catch (e) {    LlamaLogs.log({       sender: 'Server',       receiver: 'Domain Check',       message: `input: ${customerEmail}; Error: ${e}`,      isError: true    })  }}

登录后复制

我们为成功和失败的结果都添加了一个日志案例。然后,Llama Logs将使用 sender、receiver 和 isError 属性中提供的名称,自动将应用程序中的活动可视化为一系列在组件之间移动的点。

在下面的图形中,我们可以看到使用有效电子邮件对服务器运行几次调用以及导致错误的调用的结果。

1.gif

调试

比可视化图表中的活动更好,Llama Logs可以让你实时地从错误中获取数据。

还记得在 domainCheck 方法中我们将此属性附加到Llama Log吗?

message: `input: ${customerEmail}; Error: ${e}`,

登录后复制

通过使用此message属性,这意味着当我们将鼠标悬停在红色错误点上时,它将显示该消息。下图显示了我停留在错误上,它表示的请求具有电子邮件参数 == “jd”,缺少电子邮件域。

2.jpg

通过使用Llama Logs可视化系统中的错误,你可以比以往更快,更轻松地发现错误的来源!

更多信息

有兴趣的朋友请访问https://llamalogs.com/了解更多信息。该应用是免费的,今天就可以使用。如果你有任何问题,请随时与我联系:andrew@llamalogs.com。

完整代码

我认为这是一款小型Express应用程序,最简单的方法是将所有代码包含在此博客文章中。

const express = require('express')const { LlamaLogs } = require('llamalogs');LlamaLogs.init({  accountKey: 'YOUR_ACCOUNT_KEY',  graphName: 'YOUR_GRAPH_NAME'});const app = express()const port = 3000app.get('/', (req, res) => {  LlamaLogs.log({ sender: 'User', receiver: 'Server' })  let customerEmail = req.query.email  let isDomainOk = domainCheck(customerEmail)  if (isDomainOk) {      saveEmail(customerEmail)  }  res.send('We received your email')})app.listen(port, () => {  console.log(`Example app listening at http://localhost:${port}`)})const domainCheck = (customerEmail) => {  try {    const domain = customerEmail.split("@")[1].toLowerCase()    const domainIsOk = domain === "llamalogs.com"    LlamaLogs.log({ sender: 'Server', receiver: 'Domain Check' })    return domainIsOk  } catch (e) {    LlamaLogs.log({       sender: 'Server',       receiver: 'Domain Check',       message: `input: ${customerEmail}; Error: ${e}`,      isError: true    })  }}const saveEmail = (customerEmail) => {  // pretend we are saving to a database here  LlamaLogs.log({ sender: 'Domain Check', receiver: 'Database' })}

登录后复制

原文:https://dev.to/bakenator/visualize-nodejs-errors-in-real-time-with-llama-logs-3c18作者:bakenator译文地址:https://segmentfault.com/a/1190000025186252

更多编程相关知识,请访问:编程视频!!

以上就是如何使用Llama Logs显示和调试NodeJS错误?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2722199.html

(0)
上一篇 2025年3月7日 22:52:05
下一篇 2025年3月6日 03:56:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用Node.js+Vue.js来构建文件压缩应用程序

    相关推荐:《node js教程》 Node.js为我们提供了一个模块来协助文件压缩。在本文中,我们将构建一个应用程序,用户可以在该应用程序中上传他们想要压缩的文件,然后使用Node.js Zlib模块下载该文件的压缩版本。 前提 要继续学习…

    2025年3月7日 编程技术
    200
  • 23个需要了解的十分有用的nodejs库(推荐)

    相关推荐:《node js教程》 作为专业的开发人员,我们必须不断更新最新和最好的库,因为知道好的库,那么开发过程就可以依赖于它们,这会节省我们很多时间也有助于构建高质量的软件。 下面列表常见且好用的 NodeJS 库,反正我自己是已经收藏…

    2025年3月7日 编程技术
    200
  • 详解Node.js中的事件

    相关推荐:《nodejs 教程》 前端对事件肯定不陌生,为 window 绑定 scroll 事件 window.addEventListener(‘scroll’, ev => {console.log(ev);}); 登录后复制 …

    2025年3月7日
    200
  • 了解Node.js中的process对象

    相关推荐:《node js教程》 process 对象是一个全局变量,是一个 EventEmitter 实例,提供了当前 Node.js 进程的信息和操作方法 系统信息 process 对象提供了属性用于返回关键系统信息,常用的有 titl…

    2025年3月7日
    200
  • 提示Node应用性能的5个技巧

    相关推荐:《node js教程》 “如果你的 node 服务器前面没有 nginx, 那么你可能做错了。”— Bryan Hughes Node.js 是使用 最流行的语言— JavaScript 构建服务器端应用的领先工具 。由于可以同时…

    2025年3月7日
    200
  • 了解Node.js中的定时器

    相关推荐:《node js教程》 timer 用于安排函数在未来某个时间点被调用,Node.js 中的定时器函数实现了与 Web 浏览器提供的定时器 API 类似的 API,但是使用了事件循环实现,Node.js 中有四个相关的方法 set…

    2025年3月7日
    200
  • 谈谈Node.js中的文件写入

    本篇文章给大家介绍一下node.js中的文件写入。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关推荐:《node js教程》 看完文件读取再看文件写入非常简单,两者的操作几乎一一对应 fs.writeFile fs.…

    2025年3月7日
    200
  • 了解nodejs中的事件和事件循环

    相关推荐:《nodejs 教程》 熟悉javascript的朋友应该都使用过事件,比如鼠标的移动,鼠标的点击,键盘的输入等等。我们在javascript中监听这些事件,从而触发相应的处理。 同样的nodejs中也有事件,并且还有一个专门的e…

    2025年3月7日
    200
  • 浅谈node连接mysql数据库的方法

    本篇文章和大家聊聊node连接mysql数据库的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关推荐:《node js教程》 node使用原生方式,连接mysql数据库 (async () => { // …

    2025年3月7日
    200
  • nodejs怎么实现对图片进行批量裁剪?

    nodejs怎么实现对图片进行批量裁剪?下面本篇文章给大家介绍一下nodejs实现批量裁剪图片功能的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关推荐:《nodejs 教程》 1、初始化 首先新建一个 tail…

    2025年3月7日
    200

发表回复

登录后才能评论