{"id":27,"date":"2024-02-18T13:55:03","date_gmt":"2024-02-18T13:55:03","guid":{"rendered":"https:\/\/trgis.dev\/?p=27"},"modified":"2024-02-18T17:56:58","modified_gmt":"2024-02-18T17:56:58","slug":"node-js-temel-kavramlar","status":"publish","type":"post","link":"https:\/\/trgis.dev\/?p=27","title":{"rendered":"Node.Js &#8211; Temel Kavramlar"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Node.js Nedir?<\/h2>\n\n\n\n<p>Node.js, sunucu taraf\u0131 JavaScript \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131lan bir platformdur. JavaScript&#8217;in taray\u0131c\u0131larda \u00e7al\u0131\u015fmas\u0131n\u0131n yan\u0131 s\u0131ra sunucu tarafl\u0131 uygulamalar geli\u015ftirmek i\u00e7in de kullan\u0131lmas\u0131n\u0131 sa\u011flar. Ryan Dahl taraf\u0131ndan 2009 y\u0131l\u0131nda geli\u015ftirilmeye ba\u015flanm\u0131\u015ft\u0131r.<\/p>\n\n\n\n<p>Node.js&#8217;in temel avantajlar\u0131ndan biri, olay tabanl\u0131 ve asenkron bir yap\u0131ya sahip olmas\u0131d\u0131r. Bu, bir i\u015flemin tamamlanmas\u0131n\u0131 beklemek yerine, i\u015flemlerin e\u015fzamanl\u0131 olarak ger\u00e7ekle\u015ftirilebilmesini sa\u011flar. Bu da y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir uygulamalar\u0131n geli\u015ftirilmesine olanak tan\u0131r.<\/p>\n\n\n\n<p>Node.js&#8217;in ana bile\u015feni, V8 JavaScript motorudur. Bu motor, Google Chrome taray\u0131c\u0131s\u0131nda kullan\u0131lan ayn\u0131 motor olup h\u0131zl\u0131 ve etkili JavaScript kodu y\u00fcr\u00fctme yetene\u011fine sahiptir. Node.js ayr\u0131ca bir dizi dahili mod\u00fcl ve geni\u015f bir paket ekosistemi ile birlikte gelir. Bu mod\u00fcller ve paketler, HTTP sunucular\u0131ndan dosya sistemine, veritaban\u0131 i\u015flemlerinden g\u00fcvenlik kontrollerine kadar bir\u00e7ok alanda geli\u015ftirme yapmay\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n\n\n\n<p>Node.js&#8217;in yayg\u0131n kullan\u0131m alanlar\u0131 aras\u0131nda web sunucular\u0131, API&#8217;ler, mikro hizmetler, veri i\u015fleme ara\u00e7lar\u0131 ve IoT (Nesnelerin \u0130nterneti) uygulamalar\u0131 bulunmaktad\u0131r.<\/p>\n\n\n\n<p>K\u0131sacas\u0131, Node.js, JavaScript&#8217;i sunucu taraf\u0131nda kullanarak h\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve etkili uygulamalar geli\u015ftirmenize olanak tan\u0131r. Bu da geli\u015ftiricilere tek dilde hem istemci taraf\u0131 hem de sunucu taraf\u0131 uygulamalar\u0131n\u0131 kolayca y\u00f6netme ve geli\u015ftirme imkan\u0131 sunar.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Mod\u00fcller (Modules)<\/h3>\n\n\n\n<p>Node.js&#8217;de her dosya bir mod\u00fcl olarak kabul edilir ve bu dosyalar aras\u0131nda kodun organizasyonunu ve yeniden kullan\u0131labilirli\u011fini sa\u011flar.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/ greet.js\nfunction greet(name) {\n    console.log(`Hello, ${name}!`);\n}\n\nmodule.exports = greet;\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">\/\/ greet.js<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">greet<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">name<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">console<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">log<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">Hello, <\/span><span style=\"color: #81A1C1\">${<\/span><span style=\"color: #D8DEE9\">name<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #A3BE8C\">!<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">module<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">exports<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">greet<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Yukar\u0131daki kod \u00f6rne\u011finde, <code>greet<\/code> fonksiyonunu ba\u015fka dosyalarda kullanmak i\u00e7in <code>module.exports<\/code> ile d\u0131\u015fa aktar\u0131yoruz.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/ app.js\nconst greet = require('.\/greet');\n\ngreet('John');\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">\/\/ app.js<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">greet<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">require<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">.\/greet<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">greet<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">John<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><code>require<\/code> fonksiyonuyla <code>greet.js<\/code> dosyas\u0131n\u0131 <code>app.js<\/code> dosyas\u0131na dahil ediyoruz ve <code>greet<\/code> fonksiyonunu kullanabiliyoruz.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Paket Y\u00f6neticisi (Package Manager)<\/h3>\n\n\n\n<p>Node.js i\u00e7in en yayg\u0131n paket y\u00f6neticisi npm&#8217;dir. npm, projenizde kullanaca\u011f\u0131n\u0131z k\u00fct\u00fcphaneleri y\u00f6netmenize ve projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 kolayca kurman\u0131za olanak tan\u0131r.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"npm install express\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">npm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">express<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Yukar\u0131daki komut ile pop\u00fcler bir web framework&#8217;\u00fc olan Express&#8217;i projemize ekleyebiliriz.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. HTTP Sunucusu (HTTP Server)<\/h3>\n\n\n\n<p>Node.js, HTTP sunucular\u0131n\u0131 olu\u015fturmak i\u00e7in idealdir. <code>http<\/code> mod\u00fcl\u00fc, HTTP isteklerini dinlemek ve yan\u0131tlamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"const http = require('http');\n\nconst server = http.createServer((req, res) =&gt; {\n    res.writeHead(200, {'Content-Type': 'text\/plain'});\n    res.end('Hello World\\n');\n});\n\nserver.listen(3000, 'localhost', () =&gt; {\n    console.log('Server running at http:\/\/localhost:3000\/');\n});\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">http<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">require<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">http<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">server<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">http<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">createServer<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">req<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">res<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">res<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">writeHead<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">200<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Content-Type<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">text\/plain<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">res<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">end<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Hello World<\/span><span style=\"color: #EBCB8B\">\\n<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">server<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">listen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">3000<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">localhost<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">console<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">log<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Server running at http:\/\/localhost:3000\/<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Yukar\u0131daki \u00f6rnekte, bir HTTP sunucusu olu\u015fturduk ve gelen isteklere &#8220;Hello World&#8221; yan\u0131t\u0131 verdik.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Asenkron Programlama (Asynchronous Programming)<\/h3>\n\n\n\n<p>Node.js, olay bazl\u0131 ve asenkron bir yap\u0131ya sahiptir. Bu, i\u015flemlerin bloke olmadan devam edebilmesini sa\u011flar ve verimli bir \u015fekilde \u00e7oklu i\u015flem yap\u0131lmas\u0131na olanak tan\u0131r.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"const fs = require('fs');\n\nfs.readFile('dosya.txt', 'utf8', (err, data) =&gt; {\n    if (err) {\n        console.error('Dosya okunurken hata olu\u015ftu:', err);\n        return;\n    }\n    console.log('Dosya i\u00e7eri\u011fi:', data);\n});\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">fs<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">require<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">fs<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">fs<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">readFile<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">dosya.txt<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">utf8<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">err<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #D8DEE9\">err<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">console<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">error<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Dosya okunurken hata olu\u015ftu:<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">err<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">return;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">console<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">log<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Dosya i\u00e7eri\u011fi:<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Yukar\u0131daki \u00f6rnekte, <code>fs.readFile<\/code> i\u015flevi dosya okuma i\u015flemini asenkron bir \u015fekilde ger\u00e7ekle\u015ftirir ve geri arama fonksiyonu arac\u0131l\u0131\u011f\u0131yla dosyan\u0131n i\u00e7eri\u011fine eri\u015fir.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js Nedir? Node.js, sunucu taraf\u0131 JavaScript \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131lan bir platformdur. JavaScript&#8217;in taray\u0131c\u0131larda \u00e7al\u0131\u015fmas\u0131n\u0131n yan\u0131 s\u0131ra sunucu tarafl\u0131 uygulamalar geli\u015ftirmek i\u00e7in de kullan\u0131lmas\u0131n\u0131 sa\u011flar. Ryan Dahl taraf\u0131ndan 2009 y\u0131l\u0131nda geli\u015ftirilmeye ba\u015flanm\u0131\u015ft\u0131r. Node.js&#8217;in temel avantajlar\u0131ndan biri, olay tabanl\u0131 ve asenkron bir yap\u0131ya sahip olmas\u0131d\u0131r. Bu, bir i\u015flemin tamamlanmas\u0131n\u0131 beklemek yerine, i\u015flemlerin e\u015fzamanl\u0131 olarak ger\u00e7ekle\u015ftirilebilmesini sa\u011flar. Bu&#8230;<\/p>\n","protected":false},"author":2,"featured_media":28,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,20],"tags":[22,24],"class_list":["post-27","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","category-node-js","tag-javascript","tag-node-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Node.Js - Temel Kavramlar - Turkiye GIS Developer Community<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/trgis.dev\/?p=27\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Node.Js - Temel Kavramlar - Turkiye GIS Developer Community\" \/>\n<meta property=\"og:description\" content=\"Node.js Nedir? Node.js, sunucu taraf\u0131 JavaScript \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131lan bir platformdur. JavaScript&#8217;in taray\u0131c\u0131larda \u00e7al\u0131\u015fmas\u0131n\u0131n yan\u0131 s\u0131ra sunucu tarafl\u0131 uygulamalar geli\u015ftirmek i\u00e7in de kullan\u0131lmas\u0131n\u0131 sa\u011flar. Ryan Dahl taraf\u0131ndan 2009 y\u0131l\u0131nda geli\u015ftirilmeye ba\u015flanm\u0131\u015ft\u0131r. Node.js&#8217;in temel avantajlar\u0131ndan biri, olay tabanl\u0131 ve asenkron bir yap\u0131ya sahip olmas\u0131d\u0131r. Bu, bir i\u015flemin tamamlanmas\u0131n\u0131 beklemek yerine, i\u015flemlerin e\u015fzamanl\u0131 olarak ger\u00e7ekle\u015ftirilebilmesini sa\u011flar. Bu...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/trgis.dev\/?p=27\" \/>\n<meta property=\"og:site_name\" content=\"Turkiye GIS Developer Community\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-18T13:55:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-18T17:56:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/trgis.dev\/wp-content\/uploads\/2024\/02\/node-js6304.logowik.com_.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"866\" \/>\n\t<meta property=\"og:image:height\" content=\"650\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Onurhan \u015eeremet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Onurhan \u015eeremet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/trgis.dev\/?p=27#article\",\"isPartOf\":{\"@id\":\"https:\/\/trgis.dev\/?p=27\"},\"author\":{\"name\":\"Onurhan \u015eeremet\",\"@id\":\"https:\/\/trgis.dev\/#\/schema\/person\/3afa683fa7e112c711df1e37d1035e08\"},\"headline\":\"Node.Js &#8211; Temel Kavramlar\",\"datePublished\":\"2024-02-18T13:55:03+00:00\",\"dateModified\":\"2024-02-18T17:56:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/trgis.dev\/?p=27\"},\"wordCount\":479,\"publisher\":{\"@id\":\"https:\/\/trgis.dev\/#organization\"},\"keywords\":[\"Javascript\",\"Node.js\"],\"articleSection\":[\"JavaScript\",\"Node.js\"],\"inLanguage\":\"tr\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/trgis.dev\/?p=27\",\"url\":\"https:\/\/trgis.dev\/?p=27\",\"name\":\"Node.Js - Temel Kavramlar - Turkiye GIS Developer Community\",\"isPartOf\":{\"@id\":\"https:\/\/trgis.dev\/#website\"},\"datePublished\":\"2024-02-18T13:55:03+00:00\",\"dateModified\":\"2024-02-18T17:56:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/trgis.dev\/?p=27#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/trgis.dev\/?p=27\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/trgis.dev\/?p=27#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/trgis.dev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.Js &#8211; Temel Kavramlar\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/trgis.dev\/#website\",\"url\":\"https:\/\/trgis.dev\/\",\"name\":\"Turkiye GIS Developer Community\",\"description\":\"Turkiye GIS Developer Community\",\"publisher\":{\"@id\":\"https:\/\/trgis.dev\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/trgis.dev\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/trgis.dev\/#organization\",\"name\":\"Turkiye GIS Developer Community\",\"url\":\"https:\/\/trgis.dev\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/trgis.dev\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/trgis.dev\/wp-content\/uploads\/2024\/02\/Logo.png\",\"contentUrl\":\"https:\/\/trgis.dev\/wp-content\/uploads\/2024\/02\/Logo.png\",\"width\":600,\"height\":400,\"caption\":\"Turkiye GIS Developer Community\"},\"image\":{\"@id\":\"https:\/\/trgis.dev\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/trgis.dev\/#\/schema\/person\/3afa683fa7e112c711df1e37d1035e08\",\"name\":\"Onurhan \u015eeremet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/trgis.dev\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/74b25aa7537e0be8c6cda02d4e2543c4c93919248b416ad07874318ec89a5551?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/74b25aa7537e0be8c6cda02d4e2543c4c93919248b416ad07874318ec89a5551?s=96&d=retro&r=g\",\"caption\":\"Onurhan \u015eeremet\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/onurhan-seremet\"],\"url\":\"https:\/\/trgis.dev\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Node.Js - Temel Kavramlar - Turkiye GIS Developer Community","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/trgis.dev\/?p=27","og_locale":"tr_TR","og_type":"article","og_title":"Node.Js - Temel Kavramlar - Turkiye GIS Developer Community","og_description":"Node.js Nedir? Node.js, sunucu taraf\u0131 JavaScript \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131lan bir platformdur. JavaScript&#8217;in taray\u0131c\u0131larda \u00e7al\u0131\u015fmas\u0131n\u0131n yan\u0131 s\u0131ra sunucu tarafl\u0131 uygulamalar geli\u015ftirmek i\u00e7in de kullan\u0131lmas\u0131n\u0131 sa\u011flar. Ryan Dahl taraf\u0131ndan 2009 y\u0131l\u0131nda geli\u015ftirilmeye ba\u015flanm\u0131\u015ft\u0131r. Node.js&#8217;in temel avantajlar\u0131ndan biri, olay tabanl\u0131 ve asenkron bir yap\u0131ya sahip olmas\u0131d\u0131r. Bu, bir i\u015flemin tamamlanmas\u0131n\u0131 beklemek yerine, i\u015flemlerin e\u015fzamanl\u0131 olarak ger\u00e7ekle\u015ftirilebilmesini sa\u011flar. Bu...","og_url":"https:\/\/trgis.dev\/?p=27","og_site_name":"Turkiye GIS Developer Community","article_published_time":"2024-02-18T13:55:03+00:00","article_modified_time":"2024-02-18T17:56:58+00:00","og_image":[{"width":866,"height":650,"url":"https:\/\/trgis.dev\/wp-content\/uploads\/2024\/02\/node-js6304.logowik.com_.webp","type":"image\/webp"}],"author":"Onurhan \u015eeremet","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Onurhan \u015eeremet","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/trgis.dev\/?p=27#article","isPartOf":{"@id":"https:\/\/trgis.dev\/?p=27"},"author":{"name":"Onurhan \u015eeremet","@id":"https:\/\/trgis.dev\/#\/schema\/person\/3afa683fa7e112c711df1e37d1035e08"},"headline":"Node.Js &#8211; Temel Kavramlar","datePublished":"2024-02-18T13:55:03+00:00","dateModified":"2024-02-18T17:56:58+00:00","mainEntityOfPage":{"@id":"https:\/\/trgis.dev\/?p=27"},"wordCount":479,"publisher":{"@id":"https:\/\/trgis.dev\/#organization"},"keywords":["Javascript","Node.js"],"articleSection":["JavaScript","Node.js"],"inLanguage":"tr"},{"@type":"WebPage","@id":"https:\/\/trgis.dev\/?p=27","url":"https:\/\/trgis.dev\/?p=27","name":"Node.Js - Temel Kavramlar - Turkiye GIS Developer Community","isPartOf":{"@id":"https:\/\/trgis.dev\/#website"},"datePublished":"2024-02-18T13:55:03+00:00","dateModified":"2024-02-18T17:56:58+00:00","breadcrumb":{"@id":"https:\/\/trgis.dev\/?p=27#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/trgis.dev\/?p=27"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/trgis.dev\/?p=27#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/trgis.dev\/"},{"@type":"ListItem","position":2,"name":"Node.Js &#8211; Temel Kavramlar"}]},{"@type":"WebSite","@id":"https:\/\/trgis.dev\/#website","url":"https:\/\/trgis.dev\/","name":"Turkiye GIS Developer Community","description":"Turkiye GIS Developer Community","publisher":{"@id":"https:\/\/trgis.dev\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/trgis.dev\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/trgis.dev\/#organization","name":"Turkiye GIS Developer Community","url":"https:\/\/trgis.dev\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/trgis.dev\/#\/schema\/logo\/image\/","url":"https:\/\/trgis.dev\/wp-content\/uploads\/2024\/02\/Logo.png","contentUrl":"https:\/\/trgis.dev\/wp-content\/uploads\/2024\/02\/Logo.png","width":600,"height":400,"caption":"Turkiye GIS Developer Community"},"image":{"@id":"https:\/\/trgis.dev\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/trgis.dev\/#\/schema\/person\/3afa683fa7e112c711df1e37d1035e08","name":"Onurhan \u015eeremet","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/trgis.dev\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/74b25aa7537e0be8c6cda02d4e2543c4c93919248b416ad07874318ec89a5551?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/74b25aa7537e0be8c6cda02d4e2543c4c93919248b416ad07874318ec89a5551?s=96&d=retro&r=g","caption":"Onurhan \u015eeremet"},"sameAs":["https:\/\/www.linkedin.com\/in\/onurhan-seremet"],"url":"https:\/\/trgis.dev\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/trgis.dev\/index.php?rest_route=\/wp\/v2\/posts\/27","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trgis.dev\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trgis.dev\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trgis.dev\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/trgis.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=27"}],"version-history":[{"count":2,"href":"https:\/\/trgis.dev\/index.php?rest_route=\/wp\/v2\/posts\/27\/revisions"}],"predecessor-version":[{"id":35,"href":"https:\/\/trgis.dev\/index.php?rest_route=\/wp\/v2\/posts\/27\/revisions\/35"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/trgis.dev\/index.php?rest_route=\/wp\/v2\/media\/28"}],"wp:attachment":[{"href":"https:\/\/trgis.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=27"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trgis.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=27"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trgis.dev\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=27"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}