原文:https://dev.to/bakenator作者:bakenator想知道程序内部发生了什么吗?想目视检查其内部工作原理吗?上面的GIF显示了LlamaLogs的示例。这是我创建的一个新工具,可让您实时查看应用程序的内部工作情况。它已准备就绪,您可以开始在您的应用程序中免费使用它。下面,我将通过一个示例介绍如何使用LlamaLogs来显示和调试基本Express应用程序中发生的错误。首先,我将编写一个基本的express应用程序,它通过url参数接收用户的电子邮件,如果该电子邮件是针对llamalogs.com域的,则将其保存到数据库中。基本逻辑看起来像这样send('Wereceivedyouremail')})现在的问题是,我必须编写一些代码来检查,如果用户忘记在电子邮件中包含@domain部分,它会报错。constdomainCheck=(customerEmail)=>{//如果[1]值未定义,toLowerCase将失败!constdomain=customerEmail.split("@")[1].toLowerCase()constdomainIsOk=domain==="llamalogs.com"returndomainIsOk}LlamaLogs的可视化LlamaLogs非常容易设置。一旦你注册了llamalogs.com,你需要做的就是通过npm安装客户端,并开始记录,LlamaLogs会自动将你的日志转换成交互式图表。因此,例如,让我们将domainCheck方法更新为以下内容.com"LlamaLogs.log({sender:'Server',receiver:'DomainCheck'})returndomainIsOk}catch(e){LlamaLogs.log({sender:'Server',receiver:'DomainCheck',消息:`input:${customerEmail};Error:${e}`,isError:true})}}我们为成功和失败结果添加了一个日志案例。然后,LlamaLogs将使用发送者、接收者和isError属性中提供的名称,自动将应用程序中的活动可视化为组件之间移动的一系列点。在下图中,我们可以看到使用有效电子邮件对服务器运行多次调用的结果以及导致错误的调用。调试比在图表中可视化活动更好,LlamaLogs让您可以实时从错误中获取数据。还记得我们在domainCheck方法中将此属性附加到Llama日志吗?消息:`输入:${customerEmail};Error:${e}`,通过使用这个消息属性,意味着当我们将鼠标悬停在红色错误点上时,它会显示消息。下图显示了我遇到的错误,它说请求有一个电子邮件参数=="jd"并且缺少电子邮件域。通过使用LlamaLogs可视化系统中的错误,您可以比以往更快、更轻松地发现错误来源!更多信息感兴趣的朋友请访问LlamaLogs.com了解更多信息。该应用程序是免费的,今天就可以使用。如果您有任何疑问,请随时与我联系:andrew@llamalogs.com。完整代码我认为这是一个小型快捷应用程序,最简单的方法是将所有代码包含在这篇博文中。constexpress=require('express')const{LlamaLogs}=require('llamalogs');LlamaLogs.init({accountKey:'YOUR_ACCOUNT_KEY',graphName:'YOUR_GRAPH_NAME'});constapp=express()constport=3000app.get('/',(req,res)=>{LlamaLogs.log({sender:'User',receiver:'Server'})letcustomerEmail=req.query.emailletisDomainOk=domainCheck(customerEmail)if(isDomainOk){saveEmail(customerEmail)}res.send('Wereceivedyouremail')})app.listen(port,()=>{console.log(`示例应用在http://localhost:${port监听}`)})constdomainCheck=(customerEmail)=>{try{constdomain=customerEmail.split("@")[1].toLowerCase()constdomainIsOk=domain==="llamalogs.com"LlamaLogs.log({发送者:'服务器',接收者:'域检查'})返回domainIsOk}catch(e){LlamaLogs.log({发送者:'服务器',接收者:'域检查',消息:`输入:${customerEmail};错误:${e}`,isError:true})}}constsaveEmail=(customerEmail)=>{//假设我们在这里保存到数据库LlamaLogs.log({sender:'DomainCheck',receiver:'Database'})}微信搜索【前端全-stack开发作者】如果你关注了这位掉头发、摆地摊、卖货、持续学习的程序员,第一时间阅读最新文章,这两天会优先发布新文章关注来个大礼包,绝对让你省不少钱!
