﻿
{"id":9179,"date":"2018-08-27T14:31:46","date_gmt":"2018-08-27T14:31:46","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=9179"},"modified":"2018-08-27T14:31:46","modified_gmt":"2018-08-27T14:31:46","slug":"mongodb-global-promise-yapisi-ile-kayit-islemi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/mongodb-global-promise-yapisi-ile-kayit-islemi\/","title":{"rendered":"MongoDB &#8211; Global Promise Yap\u0131s\u0131 \u0130le Kay\u0131t \u0130\u015flemi"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>\u00d6nceki yaz\u0131lar\u0131mdan <a href=\"http:\/\/www.gencayyildiz.com\/blog\/node-js-mongodb-crud-islemleri\/\" rel=\"noopener\" target=\"_blank\">Node.js \u2013 MongoDB CRUD \u0130\u015flemleri<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131mda MongoDB veritaban\u0131na nas\u0131l kay\u0131t eklendi\u011fini incelemi\u015ftik. \u0130lgili makalede \u00f6rneklendirilen kay\u0131t yap\u0131s\u0131na istinaden daha d\u00fczg\u00fcn ve pratik bir yap\u0131 sunan Global Promise yap\u0131s\u0131n\u0131 kullanarak kay\u0131t i\u015fleminin nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131 inceliyor olaca\u011f\u0131z.<\/p>\n<p>\u0130lk olarak normal kay\u0131t i\u015flemini inceleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nconst express = require(&quot;express&quot;);\r\nconst router = express.Router();\r\n\r\nconst employeeModel = require(&quot;..\/models\/employee&quot;);\r\n\r\nrouter.post(&quot;\/postEmployee&quot;, (request, response, next) =&gt; {\r\n    let employeeInstance = new employeeModel(request.body);\r\n    employeeInstance.save((error, data) =&gt; {\r\n        if (!error)\r\n            response.json(data);\r\n        else\r\n            console.log(&quot;Kay\u0131t i\u015flemi ger\u00e7ekle\u015ftirilirken beklenmeyen bir hatayla kar\u015f\u0131la\u015f\u0131ld\u0131.&quot;);\r\n    });\r\n});\r\n\r\nmodule.exports = router;\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer post edilen bir datan\u0131n normal \u015fekilde veritaban\u0131na kaydedilmesini g\u00f6receksiniz. Asl\u0131nda \u00e7okta okunabilirli\u011fi ve anla\u015f\u0131labilirli\u011fi d\u00fc\u015f\u00fck bir kod olmasada biraz kar\u0131\u015f\u0131k g\u00f6z\u00fckt\u00fc\u011f\u00fc, tek bak\u0131\u015fta ne i\u015f yapt\u0131\u011f\u0131n\u0131n net anla\u015f\u0131lamad\u0131\u011f\u0131 itiraf edilebilir.<\/p>\n<p>\u015eimdi bu kay\u0131t i\u015flemini Global Promise yap\u0131s\u0131n\u0131 kullanarak ger\u00e7ekle\u015ftirelim.<\/p>\n<p>Tabi bunu ger\u00e7ekle\u015ftirebilmek i\u00e7in projede Global Promise tan\u0131mlamas\u0131n\u0131n yap\u0131lmas\u0131 gerekmektedir. Dolay\u0131s\u0131yla bu i\u015flem i\u00e7in mongodb ba\u011flant\u0131s\u0131n\u0131 sa\u011flad\u0131\u011f\u0131m\u0131z mod\u00fcle gidip i\u00e7erisinde a\u015fa\u011f\u0131daki \u00e7al\u0131\u015fmay\u0131 yapmam\u0131z gerekmektedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nconst mongoose = require(&quot;mongoose&quot;);\r\n\r\nmodule.exports = () =&gt; {\r\n    mongoose.connect(&quot;mongodb:\/\/localhost\/companydb&quot;)\r\n        .then(() =&gt; console.log(&quot;Veritaban\u0131 ba\u011flant\u0131s\u0131 ba\u015far\u0131l\u0131.&quot;))\r\n        .catch(error =&gt; console.log(&quot;Veritaban\u0131 ba\u011flant\u0131s\u0131 hata al\u0131nd\u0131.&quot;));\r\n\r\n    mongoose.Promise = global.Promise;\r\n};\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz \u00fczere yukar\u0131daki kod i\u00e7erisinde oldu\u011fu gibi mongoose yap\u0131m\u0131z\u0131n &#8220;Promise&#8221; \u00f6zelli\u011fi &#8220;global.Promise&#8221; olarak ayarlanm\u0131\u015f bulunmaktad\u0131r.<\/p>\n<p>Tabi bu mod\u00fcl dahil di\u011fer mod\u00fcl ve yap\u0131lar\u0131n in\u015fas\u0131n\u0131 ana mod\u00fcl olan &#8220;app.js&#8221; dosyas\u0131nda a\u015fa\u011f\u0131daki gibi yapmay\u0131 unutmuyoruz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nconst express = require(&quot;express&quot;);\r\nconst app = express();\r\nconst bodyParser = require(&quot;body-parser&quot;);\r\n\r\nrequire(&quot;.\/db\/db&quot;)();\r\n\r\napp.use(bodyParser.json());\r\napp.use(bodyParser.urlencoded({ extended: true }));\r\n\r\nconst employeeRouter = require(&quot;.\/routers\/employeeRouter&quot;);\r\napp.use(&quot;\/employee&quot;, employeeRouter);\r\n\r\napp.listen(5000, () =&gt; console.log(&quot;Yay\u0131n ba\u015flad\u0131.&quot;));\r\n<\/pre>\n<p>Velhas\u0131l, art\u0131k Global Promise \u00f6zelli\u011fi devreye girdi\u011fine g\u00f6re kay\u0131t i\u015flemini a\u015fa\u011f\u0131daki gibi daha okunakl\u0131 ve pratik bir \u015fekilde ger\u00e7ekle\u015ftirebilmekteyiz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nconst express = require(&quot;express&quot;);\r\nconst router = express.Router();\r\n\r\nconst employeeModel = require(&quot;..\/models\/employee&quot;);\r\n\r\nrouter.post(&quot;\/postEmployee&quot;, (request, response, next) =&gt; {\r\n    let employeeInstance = new employeeModel(request.body);\r\n    employeeInstance.save()\r\n        .then(data =&gt; response.json(data))\r\n        .catch(error =&gt; console.log(&quot;Kay\u0131t i\u015flemi ger\u00e7ekle\u015ftirilirken beklenmeyen bir hatayla kar\u015f\u0131la\u015f\u0131ld\u0131.&quot;));\r\n});\r\n\r\nmodule.exports = router;\r\n<\/pre>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere direkt &#8220;save&#8221; fonksiyonu \u00fczerinden &#8220;then&#8221; &#8211; &#8220;catch&#8221; Promise yap\u0131s\u0131n\u0131 tetiklemi\u015f olduk. \u00d6rne\u011fimizi Postman uygulamas\u0131yla test etti\u011fimiz zamanda a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde olan neticeyle kar\u015f\u0131la\u015fmaktay\u0131z.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/MongoDB-Global-Promise-Yap\u0131s\u0131-\u0130le-Kay\u0131t-\u0130\u015flemi.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/MongoDB-Global-Promise-Yap\u0131s\u0131-\u0130le-Kay\u0131t-\u0130\u015flemi.png\" alt=\"MongoDB - Global Promise Yap\u0131s\u0131 \u0130le Kay\u0131t \u0130\u015flemi\" width=\"426\" height=\"504\" class=\"aligncenter size-full wp-image-9192\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/MongoDB-Global-Promise-Yap\u0131s\u0131-\u0130le-Kay\u0131t-\u0130\u015flemi.png 426w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/MongoDB-Global-Promise-Yap\u0131s\u0131-\u0130le-Kay\u0131t-\u0130\u015flemi-254x300.png 254w\" sizes=\"auto, (max-width: 426px) 100vw, 426px\" \/><\/a><\/p>\n<p>\u0130\u015fte bu \u015fekilde g\u00f6rsel a\u00e7\u0131dan daha okunakl\u0131, pratik ve teknik a\u00e7\u0131dan daha kullan\u0131\u015fl\u0131 kodumuzu yazm\u0131\u015f olduk.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#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, \u00d6nceki yaz\u0131lar\u0131mdan Node.js \u2013 MongoDB CRUD \u0130\u015flemleri ba\u015fl\u0131kl\u0131 yaz\u0131mda MongoDB veritaban\u0131na nas\u0131l kay\u0131t eklendi\u011fini incelemi\u015ftik. \u0130lgili makalede \u00f6rneklendirilen kay\u0131t yap\u0131s\u0131na istinaden daha d\u00fczg\u00fcn ve pratik bir yap\u0131 sunan Global Promise yap\u0131s\u0131n\u0131 kullanarak kay\u0131t&#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":8971,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2539],"tags":[2588,2534,2589,2590],"class_list":["post-9179","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mongodb","tag-global-promise-yapisi","tag-mongodb","tag-mongodb-global-promise-yapisi","tag-mongodb-promise-insert"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9179","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=9179"}],"version-history":[{"count":13,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9179\/revisions"}],"predecessor-version":[{"id":9193,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9179\/revisions\/9193"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/8971"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=9179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=9179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=9179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}