{"id":2729,"date":"2020-03-24T23:49:44","date_gmt":"2020-03-25T00:19:44","guid":{"rendered":"https:\/\/ultering.com\/it4us\/?p=2729"},"modified":"2022-06-21T12:28:32","modified_gmt":"2022-06-21T12:58:32","slug":"node-js-sequelize-series","status":"publish","type":"post","link":"https:\/\/ultering.com\/it4us\/?p=2729","title":{"rendered":"NODE.JS: SEQUELIZE TUTORIAL SERIES"},"content":{"rendered":"<div class=\"jumbotron\" style=\"margin-top: 50px; margin-right: 50px !important;\">\n<p>Revision 2022<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_73 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69f3ab57c686c\" class=\"ez-toc-cssicon-toggle-label\"><span class><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\" \/><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\" \/><\/svg><\/span><\/span><\/label><input type=\"checkbox\" id=\"ez-toc-cssicon-toggle-item-69f3ab57c686c\" checked aria-label=\"Toggle\"><nav><ul class=\"ez-toc-list ez-toc-list-level-1 \"><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ultering.com\/it4us\/?p=2729\/#A_SEQUELIZE_TUTORIAL_SPLIT_INTO_STEPS_USING_Nodejs_16_AND_Express\" title=\"A SEQUELIZE TUTORIAL SPLIT INTO STEPS USING Node.js 16 AND Express\">A SEQUELIZE TUTORIAL SPLIT INTO STEPS USING Node.js 16 AND Express<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ultering.com\/it4us\/?p=2729\/#1st_STEP\" title=\"1st STEP\">1st STEP<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/ultering.com\/it4us\/?p=2729\/#2nd_STEP\" title=\"2nd STEP\">2nd STEP<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/ultering.com\/it4us\/?p=2729\/#3rd_STEP\" title=\"3rd STEP\">3rd STEP<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/ultering.com\/it4us\/?p=2729\/#4th_STEP_%E2%80%93_NODEJS_SEQUELIZE_MVC_Project\" title=\"4th STEP &#8211; NODE.JS: SEQUELIZE: MVC Project\">4th STEP &#8211; NODE.JS: SEQUELIZE: MVC Project<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"A_SEQUELIZE_TUTORIAL_SPLIT_INTO_STEPS_USING_Nodejs_16_AND_Express\"><\/span>A SEQUELIZE TUTORIAL SPLIT INTO STEPS USING Node.js 16 AND Express<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>This series presents a sequential tutorial evolving from the simplest approach starting from scratch that evolves to an advanced application using Node.js , Sequelize, PostgreSQL and&nbsp; applying advanced software engineer concepts for software development through Object-Oriented(OO) approach using MVC architecture and design patterns. From basic to advanced into 6 steps.<\/p>\n<p><strong>Project developed using Node.js version 16.<\/strong><\/p>\n<\/div>\n<div class=\"row\" style=\"padding-right: 15px !important;\">\n<div class=\"col-md-4\">\n<h2><span class=\"ez-toc-section\" id=\"1st_STEP\"><\/span><a href=\"https:\/\/ultering.com\/it4us\/?p=1953\">1st STEP<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A fast overview including some basic operation to get the first taste of it.<strong><br>\n<\/strong>Begin here to start fresh.<br>\nIt shows the very basic structure to perform your first sequelize task.<br>\nThe other posts evolves from this one.<\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-6939\" src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04.jpg\" alt width=\"1902\" height=\"759\" srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04.jpg 1902w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04-300x120.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04-768x306.jpg 768w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04-1536x613.jpg 1536w\" sizes=\"(max-width: 1902px) 100vw, 1902px\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-6939 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201902%20759%22%3E%3C%2Fsvg%3E\" alt width=\"1902\" height=\"759\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201902%20759%22%3E%3C%2Fsvg%3E 1902w\" sizes=\"(max-width: 1902px) 100vw, 1902px\" data-srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04.jpg 1902w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04-300x120.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04-768x306.jpg 768w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04-1536x613.jpg 1536w\" data-src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_04.jpg\"><\/p>\n<\/div>\n<div class=\"col-md-4\">\n<h2><\/h2>\n<h2><span class=\"ez-toc-section\" id=\"2nd_STEP\"><\/span><a href=\"https:\/\/ultering.com\/it4us\/?p=2010\">2nd STEP<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Creates the view using Express and Sequelize applying some design patterns concepts.<br>\nThis project evolves from the 1st step where the purpose is to create the view and its persistence layers.<\/p>\n<\/div>\n<\/div>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-6967\" src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_11.jpg\" alt width=\"1000\" height=\"541\" srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_11.jpg 1000w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_11-300x162.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_11-768x415.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-6967 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%20541%22%3E%3C%2Fsvg%3E\" alt width=\"1000\" height=\"541\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%20541%22%3E%3C%2Fsvg%3E 1000w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" data-srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_11.jpg 1000w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_11-300x162.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_11-768x415.jpg 768w\" data-src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/rin544c_2nd_step_11.jpg\"><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div class=\"row\" style=\"padding-right: 15px !important;\">\n<div class=\"col-md-4\">\n<h2><span class=\"ez-toc-section\" id=\"3rd_STEP\"><\/span><a href=\"https:\/\/ultering.com\/it4us\/?p=2870\">3rd STEP<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Evolving the persistence layer implementation from the 2nd step, it implements the business layer refining the design.<br>\nImportant to understand the 4th step.<\/p>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h2><strong><a href=\"https:\/\/ultering.com\/it4us\/?p=6999\">4th STEP &#8211; NODE.JS: SEQUELIZE: MVC Project<\/a><br>\n<\/strong><\/h2>\n<div class=\"row\" style=\"padding-right: 15px !important;\">\n<div class=\"col-md-4\">\n<p>The concepts seen before will be applied in a more complex use case.<br>\nThe target is to apply Object-Oriented and MVC architecture concepts for a Todo site using relationship, where:<br>\nTodo 1 &#8212;&#8212;&#8211; + TodoItem<\/p>\n<p>One Todo may have one or more TodoItem instances.<\/p>\n<p>It will be implemented the CRUD operations (basic database operations) with ORM (Sequelize), <a href=\"https:\/\/www.geeksforgeeks.org\/mvc-design-pattern\/\">MVC<\/a> model, OO (Object-Oriented programming) and Design Patterns.<br>\nA business layer delivers the result to a view layer using CSS with Bootstrap making use of include.<\/p>\n<p>Watch the video.<\/p>\n<div style=\"width: 640px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-2729-1\" width=\"640\" height=\"360\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/20220620_182024.mp4?_=1\"><a href=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/20220620_182024.mp4\">https:\/\/ultering.com\/it4us\/wp-content\/uploads\/20220620_182024.mp4<\/a><\/video><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<div style=\"margin-top: 50px;\">&nbsp;<\/div>\n<!--CusAds0-->\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Revision 2022 &nbsp; A SEQUELIZE TUTORIAL SPLIT INTO STEPS USING Node.js 16 AND Express This series presents a sequential tutorial evolving from the simplest approach starting from scratch that evolves to an advanced application using Node.js , Sequelize, PostgreSQL and&nbsp; applying advanced software engineer concepts for software development through Object-Oriented(OO) approach using MVC architecture and &#8230; <a href=\"https:\/\/ultering.com\/it4us\/?p=2729\" class=\"more-link\">Read More<span class=\"screen-reader-text\"> &#8220;NODE.JS: SEQUELIZE TUTORIAL SERIES&#8221;<\/span> &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[17,26],"tags":[],"class_list":["post-2729","post","type-post","status-publish","format-standard","hentry","category-database","category-javascript"],"_links":{"self":[{"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/posts\/2729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2729"}],"version-history":[{"count":6,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/posts\/2729\/revisions"}],"predecessor-version":[{"id":7063,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/posts\/2729\/revisions\/7063"}],"wp:attachment":[{"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}