NodeRed – İlk Akışımızı Oluşturalım

İlk akışımız bir Inject node tarafından gönderilen mesajın debug node aracılığı ile alınarak debug panel de görüntülenmesi olacaktır. Daha önce bahsedildiği gibi inject node genellikle akış kolunun başına yerleştirilerek akışın kullanıcı tarafından başlatılabilmesini sağlar. Inject node seyahatine başlayacak olan mesaj nesnesinin payload özelliğine istediğimiz veriyi koyabilir. Bu veri o anki zaman bilgisi olabileceği gibi sayı veya herhangi bir metin de olabilir. Debug node ise kendine ulaşan mesaj (msg) nesnesinin içeriğini detaylı şekilde görebilmemizi sağlar. Şimdi aşağıdaki akışı gerçekleştirmek üzere inject ve debug node’ları çalışma alanına sürükleyerek birleştirin.

Inject ve debug node’lardan oluşan ilk akışımız

Akışı Node-RED tarayıcı penceresinin sağ üstünde yer alan Deploy düğmesine tıklatarak uygulamaya koyun. Deploy işlemi, çalışma alanında oluşturduğumuz akışın Node-RED tarafından çalıştırılmasını sağlar. Şimdi de Ana menü>View>Show debug messages yolunu takip ederek debug panelinin ekranın sağında görüntülenmesini sağlayın. Artık akışımızı çalıştırabiliriz. Bunun için inject nesnesinin sol tarafında yer alan kutuya fare ile tıklatın. Inject node’u bir msg nesnesi oluşturacak ve payload özelliğine o anki zaman bilgisini milisaniye cinsinden koyacak ve msg nesnesini node çıkışına ulaştıracaktır. Debug nesnesi ise almış olduğu mesajın msg.payload özelliğini çıktılayacaktır. Yukarıdaki görselde debug panelinin içeriği de gözükmektedir. Daha önce anlatılan debug ve inject node başlıklarına göre diğer seçenekleri de değiştirerek çıktıyı gözlemleyebilirsiniz.

Dilerseniz şimdi inject ve debug node arasına bir function node yerleştirerek inject node’un gönderdiği payload özelliğini değiştirelim ve değişmiş halini debug node’a ulaştıralım. Bunun için node paletinden bir function nesnesi alarak aşağıdaki bağlantıyı oluşturun. Mevcut bağlantıları silmek için kabloyu fare ile seçip klavyeden delete tuşuna basabilirsiniz.


Function node ile mesajın manipüle edilmesi

Function node’un gelen mesajı değiştirebilmesi için aşağıdaki kodu function node’un function kutusuna yazın. Kutuya ulaşmak için function node’a çift tıklatarak özellikler panelinin görüntülenmesini sağlayabilirsiniz.

Function node’un mesajı manipüle eden JavaScript kodu

Yukarıdaki kodun çalışmasından satır satır bahsetmek gerekirse;

  1. Inject node’dan gelen msg.payload özelliği bir timestamp’i yani milisaniye cinsinden zaman bilgisini içeriyordu. Bu timestamp bir JavaScript metodu olan Date’e parametre verilerek date isimli yeni bir zaman nesnesi oluşturuluyor.
  2. Zaman nesnesi toString medodu ile, debug panelde gözüktüğü gibi okunaklı bir tarih verisine çevriliyor ve msg.payload özelliğine atanıyor.
  3. return ifadesi ile fonksiyon msg nesnesini geriye döndürerek sonlanıyor. Artık msg nesnesinin özelliği olan payload’ın içinde “Sat Apr 11 2020 04:26:48 GMT+0300 (GMT+03:00)” string (karakter katarı) bilgisi yer almaktadır.

Hazırlamış olduğunuz akışı Deploy ettikten sonra inject node’un solundaki kutucuğa tıklattığınızda bu sefer daha okunaklı bir zaman bilgisinin debug paneline yazdırıldığını göreceksiniz.

Bu örnekle bir akışı manuel olarak başlatmak için inject node’un ve kenar çubuğunda mesajları göstermek için debug node’un nasıl kullanılacağı gösterildi. Ayrıca, function node’un içinden akan mesajlar üzerinde JavaScript kullanılarak nasıl değişiklik yapabileceği örneklendirildi. Tüm bunların bir akış yaratmanın temel kavramlarını içerdiği unutulmamalıdır. İlerleyen başlıklarda bu üç temel node kullanılarak oldukça karmaşık akışlar oluşturacağız. Sizlere tavsiyem her bir node’un kullanım şeklini ve temel özelliklerini yeri geldiğince tekrar etmenizdir.

İPUCU: Araya Node Eklemek

İki node arasına yeni bir node yerleştirmek için iki yol vardır. İlki mevcut kablo bağlantısını seçtikten sonra klavyeden delete tuşuna basarak silmek. Diğeri ise, iki node’u (inject ve debug) birbirinden uzaklaştırıp aradaki kablonun yeterli uzunluğa gelmesini sağlayarak function node’u bu kablonu üzerine sürüklemek. function node kablo üzerine sürüklendiğinde aşağıdaki resimde gözüktüğü gibi bağlantıları otomatik olarak yapılır.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.