如何使用Llama Logs显示和调试NodeJS错误?
本篇文章给大家介绍一下Node开发神器--Llama Logs,使用Llama Logs实时可视化Node错误。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
相关推荐:《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
属性中提供的名称,自动将应用程序中的活动可视化为一系列在组件之间移动的点。
在下面的图形中,我们可以看到使用有效电子邮件对服务器运行几次调用以及导致错误的调用的结果。
调试
比可视化图表中的活动更好,Llama Logs可以让你实时地从错误中获取数据。
还记得在 domainCheck
方法中我们将此属性附加到Llama Log吗?
message: `input: ${customerEmail}; Error: ${e}`,
通过使用此message属性,这意味着当我们将鼠标悬停在红色错误点上时,它将显示该消息。下图显示了我停留在错误上,它表示的请求具有电子邮件参数 == “jd”
,缺少电子邮件域。
通过使用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 = 3000 app.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错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题











基于无阻塞、事件驱动建立的Node服务,具有内存消耗低的优点,非常适合处理海量的网络请求。在海量请求的前提下,就需要考虑“内存控制”的相关问题了。 1. V8的垃圾回收机制与内存限制 Js由垃圾回收机

选择一个Node的Docker镜像看起来像是一件小事,但是镜像的大小和潜在漏洞可能会对你的CI/CD流程和安全造成重大的影响。那我们如何选择一个最好Node.js Docker镜像呢?

文件模块是对底层文件操作的封装,例如文件读写/打开关闭/删除添加等等 文件模块最大的特点就是所有的方法都提供的**同步**和**异步**两个版本,具有 sync 后缀的方法都是同步方法,没有的都是异

Node 19已正式发布,下面本篇文章就来带大家详解了解一下Node.js 19的 6 大特性,希望对大家有所帮助!

事件循环是 Node.js 的基本组成部分,通过确保主线程不被阻塞来实现异步编程,了解事件循环对构建高效应用程序至关重要。下面本篇文章就来带大家深入了解Node中的事件循环 ,希望对大家有所帮助!

如何用pkg打包nodejs可执行文件?下面本篇文章给大家介绍一下使用pkg将Node项目打包为可执行文件的方法,希望对大家有所帮助!
