ラマログでリアルタイムでNodeJSのエラーを視覚化



何?


あなたのプログラムの中で起こっているのだろうか?視覚的な方法は、内部の作品を検査したいですか?
上記のGIFはLlama Logsの例である.それはあなたがリアルタイムであなたのアプリケーションの内部の作業を参照できるように作成された新しいツールです.それはあなたのための無料今日のあなたのアプリケーションで使用を開始する準備ができて!
以下に私はラマのログを使用しての例を通過し、それらが起こるように基本的なエクスプレスアプリケーションのエラーをデバッグします.

セットアップ


私は、URLのparamを介してユーザーのメールにかかる基本的なExpressアプリを書くつもりだとメールがLilamogsである場合、それをデータベースに保存します.COMドメイン.
基本ロジックは次のようになります
app.get('/', (req, res) => {
  let customerEmail = req.query.email
  let isDomainOk = domainCheck(customerEmail)

  if (isDomainOk) {
      saveEmail(customerEmail)
  }

  res.send('We received your email')
})
現在、doozyは、ユーザーが彼らの電子メールの@ドメイン部分を忘れるならば、誤りがある若干の恐ろしいコードを書くつもりであるということです.
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
}

ラマログの可視化


ラマログを設定するには非常に簡単です.一度Llamalogsにサインアップ.COM、すべてのあなたがNPMを介してクライアントをインストールし、ログを開始する必要があります.ラマログを自動的にインタラクティブなグラフにログを有効になります.
このため、たとえば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
    })
  }
}
それで、我々は成功と失敗結果のためにロギングケースを加えました.ラマログは、次に、“送信者”、“受信機”で提供される名前を使用し、“iSerror”属性を自動的にコンポーネント間を移動点の一連のようにあなたのアプリケーションの活動を視覚化する.
以下のグラフでは、有効なメールとエラーの原因となるサーバにいくつかの呼び出しを実行した結果を見ることができます.

デバッグ


グラフでの活動を視覚化するよりも、ラマログは、リアルタイムであなたのエラーからデータを取得できるようになる.
DomainCheckメソッドで覚えておいて、この属性をラマログに付けました.
message: `input: ${customerEmail}; Error: ${e}`,
このメッセージ特質を使用することによって、それは我々が赤いエラー点を乗り越えるとき、それがメッセージを示すということを意味します.下の画像はエラーでホバリングしている.それが表す要求は、メールドメインを欠いているメールparam ==“JD”を持ちました.

ラマログを使用してシステムのエラーを視覚化することで、バグのソースを識別することができますこれまで以上に速く、簡単に!

詳しい情報


興味があれば詳細についてはLlamaLogs.comをご覧ください.アプリは無料で、今日使用する準備が整いました.あなたが質問をするならば、[email protected]で私に連絡してください.

フルコード


これは、このブログ記事内のすべてのコードを含めることが最も簡単だと思うような小さなエクスプレスアプリです.
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' })
}