﻿
{"id":8688,"date":"2018-07-26T08:32:50","date_gmt":"2018-07-26T08:32:50","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=8688"},"modified":"2018-07-26T08:32:50","modified_gmt":"2018-07-26T08:32:50","slug":"node-js-express-pug-nedir-genel-bakis","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/node-js-express-pug-nedir-genel-bakis\/","title":{"rendered":"Node.js (Express) &#8211; Pug Nedir? Genel Bak\u0131\u015f"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>D\u00fcnya de\u011fi\u015fiyor, iyi k\u00f6t\u00fc bir hale b\u00fcr\u00fcn\u00fcyor. Her ge\u00e7en g\u00fcn bir \u00f6ncekinden ya nesnel de\u011fi\u015fiklikle fark\u0131n\u0131 ortaya koyuyor ya da bamba\u015fka bir renk ile yeni hayata kald\u0131\u011f\u0131 noktadan devam ediyor. Tabiat\u0131n f\u0131trat\u0131nda bir matematik varken insan\u0131 hesaba kat\u0131nca kompleks ve \u00f6ng\u00f6r\u00fclemez bir vaziyet ortaya \u00e7\u0131k\u0131yor. \u0130nsan hayat\u0131 &#8220;bug\u00fcn &lt; yar\u0131n&#8221; ba\u011f\u0131nt\u0131s\u0131yla yorumlamakta ve d\u00fcnlere, yar\u0131nlara nazaran beyhude bir anlam kat\u0131yor. D\u00fcnyan\u0131n girmi\u015f oldu\u011fu bu anlams\u0131z maratondan mesleklerde nasibini al\u0131yor. Hangisi olursa olsun icras\u0131nda d\u00fcnde kalan sanat\u00e7\u0131 \u00e7ok ge\u00e7meden bu g\u00fcnden antika muamelesi g\u00f6r\u00fcyor.<\/p>\n<p>Velhas\u0131l, bizler kendi icra etti\u011fimiz yaz\u0131l\u0131m sanat\u0131nda d\u00fcn\u00fc ge\u00e7ebilmek ve bu g\u00fcne bir nebze e\u015flik edebilmek i\u00e7in bu \u00e7abay\u0131 g\u00f6ze alm\u0131\u015f ve mesle\u011fimizin bir par\u00e7as\u0131 olarak ba\u015f\u0131ndan beri kabul etmi\u015f bulunmaktay\u0131z. \u015eimdi bu i\u00e7eri\u011fimizde zamanla HTML yap\u0131s\u0131ndaki devrimsel geli\u015fimin neticesi olan Node.js&#8217;de ki Express.js mod\u00fcl\u00fcn\u00fcn Pug yap\u0131s\u0131 \u00fczerine konu\u015fuyor olaca\u011f\u0131z.<\/p>\n<h2>Pug Nedir?<\/h2>\n<p>HTML mimarisel olarak etiket a\u00e7\/kapat mant\u0131\u011f\u0131nda \u00e7al\u0131\u015fan bir yap\u0131sal \u00f6zelli\u011fe sahiptir.<br \/>\n\u00d6rne\u011fin a\u015fa\u011f\u0131daki kod blo\u011funu incelersek;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n    &lt;title&gt;\u00d6rnek HTML&lt;\/title&gt;\r\n&lt;\/head&gt;\r\n\r\n&lt;body&gt;\r\n    &lt;p&gt;Merhaba&lt;\/p&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p>\u015feklinde olu\u015fturulan html yap\u0131s\u0131 biz yaz\u0131l\u0131mc\u0131lar i\u00e7in a\u00e7\/kapat i\u015fleminde zaman maliyetini getirmektedir.<\/p>\n<p>Pug ise bu maliyeti olduk\u00e7a d\u00fc\u015f\u00fcrmekte ve html&#8217;e nazaran daha kolay bir yakla\u015f\u0131m sergilememizi sa\u011flamaktad\u0131r.<br \/>\nYukar\u0131daki \u00f6rne\u011fi Pug ile ger\u00e7ekle\u015ftirirsek e\u011fer;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nhtml\r\n    head\r\n        title \u00d6rnek HTML\r\n    body\r\n        p Merhaba\r\n<\/pre>\n<p>\u015feklinde \u00e7al\u0131\u015fmam\u0131z yeterlidir. Bu g\u00f6rm\u00fc\u015f oldu\u011funuz yap\u0131 asl\u0131nda yukar\u0131daki ile birebir ayn\u0131 \u00f6zelli\u011fi sergilemektedir.<\/p>\n<p>Tabi ki de Pug yap\u0131s\u0131n\u0131n, yap\u0131sal ve i\u015flevsel kritik noktalar\u0131n\u0131 makalemizin devam\u0131nda gerekti\u011fi noktada konu\u015faca\u011f\u0131z lakin \u015fimdilik Pug&#8217;\u0131 tan\u0131mlamaya devam edelim.<\/p>\n<p>Pug&#8217;\u0131n genel \u00f6zellikleri;<\/p>\n<ul>\n<li>Eski ad\u0131 Jade&#8217;dir.<\/li>\n<li>Dosyalar\u0131 birbirlerine nodule etmemize yarar.<\/li>\n<li>Layout&#8217;u extend ederek yani payla\u015fmam\u0131z\u0131 sa\u011flayarak farkl\u0131 dosyalarda kullanabilmemizi sa\u011flar.<\/li>\n<li>Klasik html&#8217;de olmayan programatik yap\u0131lar\u0131 kullanmam\u0131za imkan sa\u011flar;\n<ul>\n<li>De\u011fi\u015fkenler<\/li>\n<li>D\u00f6ng\u00fcler<\/li>\n<li>Kontrol Mekanizmalar\u0131<\/li>\n<li>Diziler vs&#8230;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Pug Entegrasyonu<\/h2>\n<p>Pug&#8217;\u0131 kullanabilmek i\u00e7in projenize a\u015fa\u011f\u0131daki kodlarla entegrasyonu sa\u011flayabilirsiniz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nnpm install pug --save\r\n<\/pre>\n<h2>Pug Yap\u0131sal Kriterleri ve \u00d6zellikleri<\/h2>\n<p>Pug yap\u0131s\u0131n\u0131 olu\u015ftururken dikkat edilmesi gereken \u00f6zelliklere ve kurallara g\u00f6z atarsak e\u011fer;<\/p>\n<ul>\n<li>\n<strong>Kural 1<\/strong><br \/>\nPug ile olu\u015fturulacak html yap\u0131s\u0131nda bir nesne bir \u00fcstteki nesnenin dahili veya harici olup olmayaca\u011f\u0131n\u0131 kullan\u0131lan &#8220;tab&#8221; yahut &#8220;space&#8221; de\u011feri ile belirlemektedir.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ndiv\r\np\r\n<\/pre>\n<p>Yukar\u0131daki \u015fekilde tan\u0131mlanan bir pug yap\u0131s\u0131 a\u015fa\u011f\u0131daki gibi \u00e7\u0131kt\u0131 verecektir.<br \/>\n<code>&lt;div&gt;&lt;\/div&gt;&lt;p&gt;&lt;\/p&gt;<\/code><br \/>\nE\u011fer ki &#8220;p&#8221; etiketini &#8220;div&#8221; i\u00e7erisine almak istiyorsak;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\/\/--space\r\ndiv\r\n p\r\n<\/pre>\n<p>gibi ya da<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\/\/--tab\r\ndiv\r\n    p\r\n<\/pre>\n<p>\u015feklinde \u00e7al\u0131\u015fmam\u0131z gerekecektir.<br \/>\n<code>&lt;div&gt;&lt;p&gt;&lt;\/p&gt;&lt;\/div&gt;<\/code><\/p>\n<p>\u00d6rnek;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ndiv\r\n    p\r\n    p\r\nstrong\r\np\r\n    div\r\n        br\r\n        hr\r\ndiv\r\n<\/pre>\n<p>\u00c7\u0131kt\u0131;<br \/>\n<code>&lt;div&gt;&lt;p&gt;&lt;\/p&gt;&lt;p&gt;&lt;\/p&gt;&lt;\/div&gt;&lt;strong&gt;&lt;\/strong&gt;&lt;p&gt;&lt;div&gt;&lt;br\/&gt;&lt;hr\/&gt;&lt;\/div&gt;&lt;\/p&gt;&lt;div&gt;&lt;\/div&gt;<\/code><br \/>\n\u015feklinde olacakt\u0131r.\n<\/li>\n<li>\n<strong>Kural 2<\/strong><br \/>\nHtml nesnelerine bir yaz\u0131\/de\u011fer\/veri yazarken iki t\u00fcrl\u00fc yaz\u0131m \u015fekli mevcuttur.<\/p>\n<ol>\n<li>\nDirekt olarak nesnenin yan\u0131na tek sat\u0131rl\u0131k de\u011fer yaz\u0131labilir.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ndiv\r\n    p x\r\n    p y\r\ndiv z\r\n<\/pre>\n<p>Bu kullan\u0131m\u0131n \u00e7\u0131kt\u0131s\u0131;<br \/>\n<code>&lt;div&gt;&lt;p&gt;x&lt;\/p&gt;&lt;p&gt;y&lt;\/p&gt;&lt;\/div&gt;&lt;div&gt;z&lt;\/div&gt;<\/code>\n<\/li>\n<li>\n\u0130lgili nesnenin bir sat\u0131r alt\u0131nda &#8220;|&#8221; karakterinin e\u015fli\u011finde de\u011fer yaz\u0131labilir.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ndiv\r\n    |x\r\n    p \r\n        |y\r\n    p\r\n        |z\r\n    |w\r\ndiv p\r\n<\/pre>\n<p>\u00c7\u0131kt\u0131;<br \/>\n<code>&lt;div&gt;x&lt;p&gt;y&lt;\/p&gt;&lt;p&gt;z&lt;\/p&gt;w&lt;\/div&gt;&lt;div&gt;p&lt;\/div&gt;<\/code>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<strong>Kural 3<\/strong><br \/>\nHtml etiketlerine attribute atarken a\u015fa\u011f\u0131daki \u015fekilde \u00e7al\u0131\u015f\u0131lmaktad\u0131r.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ndiv(style=&quot;background-color:gray; width:350px; color:yellow;&quot;)\r\n    |Merhaba\r\n    p\r\n        |Nas\u0131ls\u0131n?\r\n    p(style=&quot;font-size:8px;&quot;) \u0130yi diyelim, iyi olsun...\r\n<\/pre>\n<p>\u00c7\u0131kt\u0131;<br \/>\n<code>&lt;div style=\"background-color:gray; width:350px; font-color:yellow;\"&gt;Merhaba&lt;p&gt;Nas\u0131ls\u0131n?&lt;\/p&gt;&lt;p style=\"font-size:8px;\"&gt;\u0130yi diyelim, iyi olsun...&lt;\/p&gt;&lt;\/div&gt;<\/code>\n<\/li>\n<\/ul>\n<h2>Pug Dosyas\u0131n\u0131 Render Etmek<\/h2>\n<p>Bir \u00f6nceki <a href=\"http:\/\/www.gencayyildiz.com\/blog\/node-js-express-nedir\/\" rel=\"noopener\" target=\"_blank\">Node.js \u2013 Express Nedir?<\/a> ba\u015fl\u0131kl\u0131 makalemde Node.js&#8217;de Express.js&#8217;in ne oldu\u011fundan ve express.js ile sunucu olu\u015fturmaktan bahsetmi\u015ftik. \u0130\u015fte bizler Pug dosyalar\u0131n\u0131 ilgili makaledeki yap\u0131y\u0131 kullanarak render edece\u011fiz.<\/p>\n<p>Tabi \u00f6ncelikle projemizin ana dizininde &#8220;views&#8221; ad\u0131nda bir klas\u00f6r olu\u015ftural\u0131m ve ard\u0131ndan i\u00e7erisine herhangi bir isimde &#8220;.pug&#8221; uzant\u0131l\u0131 dosyam\u0131z\u0131 ekleyelim. <span style=\"font-size:10px;\">\u00d6rne\u011fin &#8220;pug2.pug&#8221;<\/span><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nhtml\r\n    head\r\n        title \u00d6rnek HTML\r\n    body\r\n        | Merhaba\r\n<\/pre>\n<p>Ard\u0131ndan &#8220;.js&#8221; uzant\u0131l\u0131 \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z dosyam\u0131zda a\u015fa\u011f\u0131daki \u00e7al\u0131\u015fmalar\u0131 ger\u00e7ekle\u015ftirelim;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nconst express = require(&quot;express&quot;);\r\nconst app = express();\r\n\/\/\u0130lgili uygulamaya pug mtooru belirtilmektedir.\r\napp.set(&quot;view engine&quot;, &quot;pug&quot;);\r\napp.get(&quot;\/&quot;, (request, response) =&gt; {\r\n    \/\/pug dosyas\u0131 response ile render edilmektedir.\r\n    response.render(&quot;pug2&quot;);\r\n});\r\napp.listen(5000, () =&gt; {\r\n    console.log(&quot;Yay\u0131n ba\u015flad\u0131...&quot;);\r\n});\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi &#8220;app.set&#8221; fonksiyonuyla ilgili route&#8217;a pug motoru tan\u0131mlanmakta ve &#8220;response.render&#8221; fonksiyonu ile &#8220;pug2&#8221; isimli pug dosyam\u0131z render edilmektedir. &#8220;<em><strong>Peki hoca sistem &#8220;pug2&#8221; dosyas\u0131n\u0131n views klas\u00f6r\u00fc alt\u0131nda oldu\u011funu nereden biliyor?<\/strong><\/em>&#8221; diye sorma ihtimalinize nazaran pug&#8217;un varsay\u0131lan olarak view nesnelerini ana dizindeki &#8220;views&#8221; klas\u00f6r\u00fc alt\u0131nda aramakta oldu\u011funu s\u00f6ylemekte fayda var.<\/p>\n<p>Bu i\u015flem neticesinde ilgili pug dosyam\u0131z render edilmi\u015f olacakt\u0131r ve belirtilen portta belirtilen route adresinde \u00e7al\u0131\u015ft\u0131r\u0131lacakt\u0131r.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Node.js-Express-Pug-Nedir-Genel-Bak\u0131\u015f..png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Node.js-Express-Pug-Nedir-Genel-Bak\u0131\u015f..png\" alt=\"Node.js (Express) - Pug Nedir? Genel Bak\u0131\u015f\" width=\"210\" height=\"73\" class=\"aligncenter size-full wp-image-8728\" \/><\/a><\/p>\n<h2>Pug Programatik \u00d6zellikleri<\/h2>\n<p>Pug yap\u0131s\u0131nda html&#8217;de olmayan programatik yap\u0131lar\u0131 kullanabilmekteyiz. \u015eimdi s\u0131ras\u0131yla bu yap\u0131lar\u0131 inceleyelim;<\/p>\n<ul>\n<li>\n<strong>Render Esnas\u0131nda Parametre Olarak De\u011fer G\u00f6nderme<\/strong><br \/>\nPug dosyas\u0131n\u0131 render ederken parametre olarak belirli de\u011ferleri g\u00f6nderebiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nconst express = require(&quot;express&quot;);\r\nconst app = express();\r\napp.set(&quot;view engine&quot;, &quot;pug&quot;);\r\napp.get(&quot;\/&quot;, (request, response) =&gt; {\r\n    response.render(&quot;pug2&quot;, { degisken1: &quot;de\u011fi\u015fken 1&quot;, degisken2: &quot;de\u011fi\u015fken 2&quot;, degisken3: { x: 3, y: true } });\r\n});\r\napp.listen(5000, () =&gt; {\r\n    console.log(&quot;Yay\u0131n ba\u015flad\u0131...&quot;);\r\n});\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi &#8220;render&#8221; fonksiyonunda ikinci parametreye de\u011ferlerimizi belirtmi\u015f olduk. Bu de\u011ferlere a\u015fa\u011f\u0131daki gibi ula\u015fabilmekteyiz;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nhtml\r\n    head\r\n        title \u00d6rnek HTML\r\n    body\r\n        p=degisken1\r\n        p=degisken2\r\n        p=degisken3.x\r\n<\/pre>\n<p>\u015eimdi bu de\u011ferlere kar\u015f\u0131l\u0131k gelen paremetre isimlerinin yani de\u011fi\u015fkenlerin nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 inceleyelim.\n<\/li>\n<li>\n<strong>De\u011fi\u015fken Tan\u0131mlama ve De\u011ferini \u00c7a\u011f\u0131rma<\/strong><br \/>\nPug dosyalar\u0131nda de\u011fi\u015fken tan\u0131mlamak i\u00e7in &#8220;-(tire)&#8221; karakterinin kullan\u0131lmas\u0131 gerekmektedir.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nhtml\r\n    head\r\n        title \u00d6rnek HTML\r\n    body\r\n        - let degisken1 = &quot;de\u011fi\u015fken 1&quot;\r\n        - let degisken2 = &quot;de\u011fi\u015fken 2&quot;\r\n        - let degisken3 = &#x5B;3, 5, 7]\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi &#8220;degisken1&#8221;, &#8220;degisken2&#8221; ve &#8220;degisken3&#8221; olmak \u00fczere de\u011fi\u015fkenlerimiz tan\u0131mlanm\u0131\u015ft\u0131r. Bu tan\u0131mlamalar\u0131n sonuna &#8220;;&#8221; karakterinin koyulmas\u0131na gerek yoktur.<\/p>\n<p>Tan\u0131mlanan de\u011fi\u015fkenleri kullanabilmek i\u00e7in iki farkl\u0131 yol mevcuttur;<\/p>\n<ol>\n<li>\nDe\u011fi\u015fkenlerin de\u011ferini &#8220;=&#8221; operat\u00f6r\u00fc ile direkt olarak getirebilmekteyiz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nhtml\r\n    head\r\n        title \u00d6rnek HTML\r\n    body\r\n        - let degisken1 = &quot;de\u011fi\u015fken 1&quot;\r\n        - let degisken2 = &quot;de\u011fi\u015fken 2&quot;\r\n    div= degisken1\r\n    div\r\n        =degisken2\r\n<\/pre>\n<\/li>\n<li>\nE\u011fer ki de\u011fi\u015fken de\u011feri metinsel ifadelerin aras\u0131na yazd\u0131r\u0131lacaksa &#8220;#{degiskenadi}&#8221; kal\u0131b\u0131 kullan\u0131lmal\u0131d\u0131r.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nhtml\r\n    head\r\n        title \u00d6rnek HTML\r\n    body\r\n        - let degisken1 = &quot;de\u011fi\u015fken 1&quot;\r\n        - let degisken2 = &quot;de\u011fi\u015fken 2&quot;\r\n        - let degisken3 = &#x5B;3, 5, 7]\r\n    div degisken1 de\u011fi\u015fkeninin de\u011feri = #{degisken1}\r\n    div\r\n        |degisken2 de\u011fi\u015fkeninin de\u011feri = #{degisken2}\r\n<\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<strong>Pug Dosyalar\u0131n\u0131 Include Etmek<\/strong><br \/>\nBir pug dosyas\u0131n\u0131 bir ba\u015fka pug dosyas\u0131 i\u00e7erisine a\u015fa\u011f\u0131daki gibi include edebiliriz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\/\/-head.pug\r\nhead\r\n    title Include\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\/\/-body.pug\r\nbody\r\n    |Merhaba\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\/\/-pug2.pug\r\nhtml\r\n    include head\r\n    include body\r\n<\/pre>\n<\/li>\n<li>\n<strong>Kontrol Yap\u0131lar\u0131n\u0131 Kullanma(If &#8211; Else If- Else)<\/strong><br \/>\nIf &#8211; Else If &#8211; Else kal\u0131b\u0131n\u0131 a\u015fa\u011f\u0131daki gibi kolayca kullanabilmekteyiz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nbody\r\n    div\r\n        - let sayi = 12\r\n        if !sayi\r\n            |Say\u0131 de\u011fi\u015fkeni yok\r\n        else if sayi &lt; 10\r\n            |Say\u0131 de\u011fi\u015fkeninin de\u011feri 10'den k\u00fc\u00e7\u00fckt\u00fcr. Say\u0131 : #{sayi}\r\n        else\r\n            |Say\u0131 de\u011fi\u015fkeninin de\u011feri 10'a e\u015fit ya da b\u00fcy\u00fckt\u00fcr. Say\u0131 : #{sayi}\r\n<\/pre>\n<p>Burada dikkat edilmesi gereken husus, &#8216;if &#8211; else if &#8211; else&#8217; yap\u0131s\u0131n\u0131n hangi html nesnesi i\u00e7erisinde kullan\u0131ld\u0131\u011f\u0131d\u0131r. Ayriyetten her bir kontrol sonras\u0131 yap\u0131lan i\u015flem bir &#8220;tab&#8221; ya da &#8220;space&#8221; i\u00e7eride ger\u00e7ekle\u015ftirilmelidir.\n<\/li>\n<li>\n<strong>D\u00f6ng\u00fc Kullan\u0131m\u0131<\/strong><br \/>\nPug dosyalar\u0131nda genellikle &#8220;each&#8221; d\u00f6ng\u00fcs\u00fc i\u015fimizi g\u00f6recektir.<br \/>\n\u00d6rnek 1;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nbody\r\n    ul\r\n        each val in &#x5B;1, 3, 5, 7, 9]\r\n            li= val\r\n<\/pre>\n<p>\u00d6rnek 2;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nbody\r\n    ul\r\n        -let array = &#x5B;1, 3, 5, 7, 9]\r\n        each val in array\r\n            li= val\r\n<\/pre>\n<p>\u00d6rnek 3;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nbody\r\n    ul\r\n        -let array = &quot;Merhaba D\u00fcnya&quot;\r\n        each val in array\r\n            li= val\r\n<\/pre>\n<p>E\u011fer ki &#8220;each&#8221; d\u00f6ng\u00fclerinde elemanlar\u0131n index numaras\u0131n\u0131 kullanmak isterseniz a\u015fa\u011f\u0131daki gibi \u00e7al\u0131\u015f\u0131lmas\u0131 gerekmektedir;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nbody\r\n    ul\r\n        -let array = &#x5B;1, 3, 5, 7, 9]\r\n        each val, index in array\r\n            li= index + &quot;- &quot; + val\r\n<\/pre>\n<p>E\u011fer ki ilgili dizide veri kontrol\u00fc yapmak istiyorsan\u0131z &#8220;each&#8221; d\u00f6ng\u00fcs\u00fcne \u00f6zel &#8220;else&#8221; yap\u0131s\u0131n\u0131 kullanabilirsiniz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nbody\r\n    ul\r\n        -let array = &#x5B;]\r\n        each val in array\r\n            li= val\r\n        else\r\n            li Veri Yok\r\n<\/pre>\n<p>&#8220;each&#8221; d\u00f6ng\u00fcs\u00fcne nazaran &#8220;while&#8221; d\u00f6ng\u00fcs\u00fcn\u00fcde kullanmak isterseniz a\u015fa\u011f\u0131daki \u00f6rne\u011fi inceleyiniz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nbody\r\n    ul\r\n        - let sayac = 0\r\n        while sayac &lt; 100\r\n            li= sayac++\r\n<\/pre>\n<\/li>\n<\/ul>\n<p>Evet, bu i\u00e7eri\u011fimiz ile Pug yap\u0131s\u0131 \u00fczerine g\u00fczel bir giri\u015f yapt\u0131\u011f\u0131m\u0131z\u0131 ve olaya tam teferruatl\u0131 sa\u011flam temeller att\u0131\u011f\u0131m\u0131z\u0131 d\u00fc\u015f\u00fcn\u00fcyorum. \u0130\u00e7eri\u011fimizde genel olarak bilinmesi gerekenleri sundu\u011fumuzdan dolay\u0131 bundan sonraki Pug ile ilgili kalan di\u011fer konular\u0131 kendilerine has i\u00e7eriklerde ele almay\u0131 tercih ediyorum.<\/p>\n<p>O halde sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere diyelim&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, D\u00fcnya de\u011fi\u015fiyor, iyi k\u00f6t\u00fc bir hale b\u00fcr\u00fcn\u00fcyor. Her ge\u00e7en g\u00fcn bir \u00f6ncekinden ya nesnel de\u011fi\u015fiklikle fark\u0131n\u0131 ortaya koyuyor ya da bamba\u015fka bir renk ile yeni hayata kald\u0131\u011f\u0131 noktadan devam ediyor. Tabiat\u0131n f\u0131trat\u0131nda bir&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":8746,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2495,2145,2499],"tags":[2502,2497,2147,2501,2500,2506,2504,2507,2509,2505,2508,2503,2510],"class_list":["post-8688","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-express-js","category-node-js","category-pug","tag-express-pug","tag-express-js","tag-node-js","tag-node-js-pug","tag-pug","tag-pug-conditionals","tag-pug-degiskenler","tag-pug-donguler","tag-pug-each","tag-pug-if-else","tag-pug-loops","tag-pug-nedir","tag-pug-while"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=8688"}],"version-history":[{"count":55,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8688\/revisions"}],"predecessor-version":[{"id":8747,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8688\/revisions\/8747"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/8746"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=8688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=8688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=8688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}