{"id":63802,"date":"2024-05-26T19:36:23","date_gmt":"2024-05-26T16:06:23","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/"},"modified":"2024-05-26T19:36:23","modified_gmt":"2024-05-26T16:06:23","slug":"%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/","title":{"rendered":"\u062a\u062c\u0631\u0628\u0647 \u0645\u0646 \u0628\u0627 AdonisJS \u0648 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u0627\u0648\u0644\u06cc\u0646 CRUD \u062e\u0648\u062f"},"content":{"rendered":"<p><\/p>\n<div data-article-id=\"1865693\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" 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\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" 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><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#%D9%85%D8%B9%D8%B1%D9%81%DB%8C\" >\u0645\u0639\u0631\u0641\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#%D8%A7%D8%B3%D9%86%D8%A7%D8%AF_%D9%88_%D8%A7%D8%B3%D8%AA%D8%A7%D9%86%D8%AF%D8%A7%D8%B1%D8%AF%D9%87%D8%A7%DB%8C_%D8%A7%D8%AC%D8%A8%D8%A7%D8%B1%DB%8C\" >\u0627\u0633\u0646\u0627\u062f \u0648 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u0647\u0627\u06cc \u0627\u062c\u0628\u0627\u0631\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1_%D8%AE%D9%88%D8%AF\" >\u0627\u0628\u0632\u0627\u0631 \u062e\u0648\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#%D8%B3%D8%A7%D8%AE%D8%AA_%D8%A7%D9%88%D9%84%DB%8C%D9%86_CRUD_%D9%85%D9%86_%D8%A8%D8%A7_AdonisJS\" >\u0633\u0627\u062e\u062a \u0627\u0648\u0644\u06cc\u0646 CRUD \u0645\u0646 \u0628\u0627 AdonisJS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#1_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%D8%B1%D9%88%DA%98%D9%87\" >1. \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0631\u0648\u0698\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#2_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87\" >2. \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#3_%D8%AC%D8%AF%D9%88%D9%84_%D9%88%D8%B8%D8%A7%DB%8C%D9%81_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >3. \u062c\u062f\u0648\u0644 \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#4_%D9%82%D8%A7%D9%84%D8%A8_Task_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >4. \u0642\u0627\u0644\u0628 Task \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#5_Task_Controller_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >5. Task Controller \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#6_%D9%85%D8%B3%DB%8C%D8%B1%D9%87%D8%A7_%D8%B1%D8%A7_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >6. \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d9%85%d9%86-%d8%a8%d8%a7-adonisjs-%d9%88-%d9%86%d8%ad%d9%88%d9%87-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a7%d9%88%d9%84%db%8c%d9%86-crud-%d8%ae%d9%88%d8%af\/#7_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D8%B1%D8%A7_%D8%AA%D8%B3%D8%AA_%DA%A9%D9%86%DB%8C%D8%AF\" >7. \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B9%D8%B1%D9%81%DB%8C\"><\/span>\n<p>  \u0645\u0639\u0631\u0641\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f \u062a\u062c\u0631\u0628\u0647 \u0641\u0639\u0644\u06cc \u062e\u0648\u062f \u0628\u0627 \u0686\u0627\u0631\u0686\u0648\u0628 Adonijs \u0648 MVC (Model-View-Controller) \u0628\u0631\u0627\u06cc Node.js \u0635\u062d\u0628\u062a \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f.<\/p>\n<p>\u0628\u0627\u06cc\u062f \u0627\u0639\u062a\u0631\u0627\u0641 \u06a9\u0646\u0645 \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062a\u062c\u0631\u0628\u0647 \u0627\u06cc \u0628\u0627 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 \u062f\u0627\u0634\u062a\u0647 \u0627\u0645\u060c \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0647\u0631\u06af\u0632 \u0627\u0632 100% \u067e\u062a\u0627\u0646\u0633\u06cc\u0644 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0631\u062f\u0647 \u0627\u0645.  \u0627\u062e\u06cc\u0631\u0627\u064b \u06cc\u06a9 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u06a9\u0627\u0631\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0645 \u06a9\u0647 \u0628\u0627\u0639\u062b \u0634\u062f AdonisJS \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062d\u0631\u0641\u0647 \u0627\u06cc \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u0645 \u0648 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645 \u0648 \u0647\u0645 \u0627\u0632 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0622\u0646 \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628 \u0627\u0633\u062a \u0648 \u0647\u0645 \u0627\u0632 \u0646\u0638\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u0647\u0627\u06cc \u0627\u062c\u0628\u0627\u0631\u06cc \u0622\u0646 \u0634\u06af\u0641\u062a \u0632\u062f\u0647 \u0634\u062f\u0645\u060c \u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0627\u062d\u0633\u0627\u0633 \u0645\u06cc \u06a9\u0646\u0645 \u062f\u0631 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 \u0647\u0627\u06cc Node.js \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645 \u0627\u0633\u062a.  \u0645\u0648\u0627\u0631\u062f\u06cc \u06a9\u0647 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0647\u0645\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0632\u0645\u06cc\u0646\u0647 \u0628\u0631\u062c\u0633\u062a\u0647 \u0647\u0633\u062a\u0646\u062f NestJS \u0648 AdonisJS \u0647\u0633\u062a\u0646\u062f.  \u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0645\u0646 (\u06cc\u06a9 \u0645\u0648\u0636\u0648\u0639 \u0628\u062d\u062b \u0628\u0631\u0627\u0646\u06af\u06cc\u0632) \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D9%86%D8%A7%D8%AF_%D9%88_%D8%A7%D8%B3%D8%AA%D8%A7%D9%86%D8%AF%D8%A7%D8%B1%D8%AF%D9%87%D8%A7%DB%8C_%D8%A7%D8%AC%D8%A8%D8%A7%D8%B1%DB%8C\"><\/span>\n<p>  \u0627\u0633\u0646\u0627\u062f \u0648 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u0647\u0627\u06cc \u0627\u062c\u0628\u0627\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0633\u062a\u0646\u062f\u0627\u062a AdonisJS \u0628\u0633\u06cc\u0627\u0631 \u0648\u0627\u0636\u062d \u0648 \u062f\u0642\u06cc\u0642 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0646\u062d\u0646\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0648 \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0627\u0632 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0648\u0644\u06cc\u0647 \u06af\u0631\u0641\u062a\u0647 \u062a\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc \u062f\u0647\u062f \u0648 \u067e\u0627\u06cc\u0647 \u0627\u06cc \u0645\u062d\u06a9\u0645 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u062f\u0631 \u0647\u0645\u0647 \u0633\u0637\u0648\u062d \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u0647\u0627\u06cc \u0627\u062c\u0628\u0627\u0631\u06cc AdonisJS \u0628\u0647 \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u0648 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u06a9\u062f \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f\u060c \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.  \u0627\u06cc\u0646\u062c\u0627\u0633\u062a \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9\u200c\u0647\u0627\u06cc Node.js \u0634\u06a9\u0633\u062a \u0645\u06cc\u200c\u062e\u0648\u0631\u0646\u062f\u060c \u0632\u06cc\u0631\u0627 \u0641\u0636\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u062a\u0641\u0633\u06cc\u0631 \u0648 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062a\u0648\u0633\u0637 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u0646\u062f.  \u0628\u0627 AdonisJS\u060c \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u0627\u0645\u0644\u0627\u064b \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u062a\u0648\u0633\u0639\u0647 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0647\u062f\u0627\u06cc\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1_%D8%AE%D9%88%D8%AF\"><\/span>\n<p>  \u0627\u0628\u0632\u0627\u0631 \u062e\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AdonisJS \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u062e\u0648\u062f \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631 \u062c\u0627\u0644\u0628 \u0647\u0633\u062a\u0646\u062f \u0645\u062a\u0645\u0627\u06cc\u0632 \u0627\u0633\u062a.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c Lucid\u060c ORM \u062e\u0648\u062f \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062f\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u06cc\u0627 \u062d\u062a\u06cc CLI \u062e\u0648\u062f \u0627\u062f\u063a\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0648 \u0628\u0635\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0648\u0698\u0647 \u0647\u0627 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u062a\u0633\u0647\u06cc\u0644 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u062f\u0644 \u0647\u0627\u060c \u06a9\u0646\u062a\u0631\u0644\u0631\u0647\u0627 \u0648 \u0645\u0647\u0627\u062c\u0631\u062a \u0647\u0627<br \/>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0645 \u0633\u0627\u0639\u062a\u200c\u0647\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0635\u062d\u0628\u062a \u06a9\u0646\u0645\u060c \u0645\u0627\u0646\u0646\u062f Sessions\u060c Auth \u06a9\u0647 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 CLI \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a (\u0627\u06cc\u0646 \u0628\u0627\u0648\u0631\u0646\u06a9\u0631\u062f\u0646\u06cc \u0627\u0633\u062a)\u060c \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc\u060c \u0627\u06cc\u0645\u06cc\u0644\u200c\u0647\u0627 \u0648 \u0628\u0633\u06cc\u0627\u0631\u06cc \u062f\u06cc\u06af\u0631.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA_%D8%A7%D9%88%D9%84%DB%8C%D9%86_CRUD_%D9%85%D9%86_%D8%A8%D8%A7_AdonisJS\"><\/span>\n<p>  \u0633\u0627\u062e\u062a \u0627\u0648\u0644\u06cc\u0646 CRUD \u0645\u0646 \u0628\u0627 AdonisJS<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0647\u0645\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0648 \u062a\u0645\u062c\u06cc\u062f \u0641\u06a9\u0631 \u0645\u06cc \u06a9\u0646\u0645 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0646 \u0622\u0646 \u062f\u0631 \u0639\u0645\u0644 \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u062a\u0627 \u0628\u0647 \u0634\u0645\u0627 \u062b\u0627\u0628\u062a \u06a9\u0646\u0645 \u0686\u0642\u062f\u0631 \u062e\u0648\u0628 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 CRUD (\u0627\u06cc\u062c\u0627\u062f\u060c \u062e\u0648\u0627\u0646\u062f\u0646\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u060c \u062d\u0630\u0641) \u062f\u0631 AdonisJS V6 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Lucid ORM \u0648 AdonisJS CLI \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.  \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0634\u0627\u0645\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0644\u06cc\u0633\u062a \u0648\u0638\u0627\u06cc\u0641 \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"1_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%D8%B1%D9%88%DA%98%D9%87\"><\/span>\n<p>  1. \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0631\u0648\u0698\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 AdonisJS \u062c\u062f\u06cc\u062f \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Instale a CLI do AdonisJS globalmente se ainda n\u00e3o tiver<\/span>\nnpm <span class=\"nb\">install<\/span> <span class=\"nt\">-g<\/span> @adonisjs\/cli\n\n<span class=\"c\"># Crie um novo projeto AdonisJS<\/span>\nadonis new tasks-app\n\n<span class=\"c\"># Navegue at\u00e9 a pasta do projeto<\/span>\n<span class=\"nb\">cd <\/span>tasks-app\n\n<span class=\"c\"># Instale as depend\u00eancias<\/span>\nnpm <span class=\"nb\">install<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"2_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87\"><\/span>\n<p>  2. \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 config\/database.ts \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u06af\u06cc \u0627\u0632 SQLite \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ config\/database.ts<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">databaseConfig<\/span><span class=\"p\">:<\/span> <span class=\"nx\">DatabaseConfig<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">connection<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">sqlite<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n\n  <span class=\"na\">connections<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">sqlite<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n      <span class=\"na\">client<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">sqlite3<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">connection<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">filename<\/span><span class=\"p\">:<\/span> <span class=\"nx\">path<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">..<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">database.sqlite<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n      <span class=\"p\">},<\/span>\n      <span class=\"na\">useNullAsDefault<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">migrations<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">naturalSort<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">},<\/span>\n      <span class=\"na\">healthCheck<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">debug<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">},<\/span>\n    <span class=\"c1\">\/\/ Outras configura\u00e7\u00f5es de banco de dados...<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"3_%D8%AC%D8%AF%D9%88%D9%84_%D9%88%D8%B8%D8%A7%DB%8C%D9%81_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  3. \u062c\u062f\u0648\u0644 \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u062c\u062f\u0648\u0644 \u0648\u0638\u06cc\u0641\u0647 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 migrations \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Criar uma migra\u00e7\u00e3o para a tabela de tarefas<\/span>\nadonis make:migration tasks <span class=\"nt\">--create<\/span><span class=\"o\">=<\/span>tasks\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\/migrations\/TIMESTAMP_tasks.ts \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"nx\">BaseSchema<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@ioc:Adonis\/Lucid\/Schema<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">Tasks<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">BaseSchema<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">protected<\/span> <span class=\"nx\">tableName<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">tasks<\/span><span class=\"dl\">'<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"k\">async<\/span> <span class=\"nf\">up <\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">schema<\/span><span class=\"p\">.<\/span><span class=\"nf\">createTable<\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">tableName<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">table<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">increments<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">id<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n      <span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">title<\/span><span class=\"dl\">'<\/span><span class=\"p\">).<\/span><span class=\"nf\">notNullable<\/span><span class=\"p\">()<\/span>\n      <span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">text<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">description<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n      <span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">boolean<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">is_completed<\/span><span class=\"dl\">'<\/span><span class=\"p\">).<\/span><span class=\"nf\">defaultTo<\/span><span class=\"p\">(<\/span><span class=\"kc\">false<\/span><span class=\"p\">)<\/span>\n      <span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">timestamps<\/span><span class=\"p\">(<\/span><span class=\"kc\">true<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">})<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"k\">async<\/span> <span class=\"nf\">down <\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">schema<\/span><span class=\"p\">.<\/span><span class=\"nf\">dropTable<\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">tableName<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0647\u0627\u062c\u0631\u062a \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>adonis migration:run\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"4_%D9%82%D8%A7%D9%84%D8%A8_Task_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  4. \u0642\u0627\u0644\u0628 Task \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06cc\u06a9 \u0645\u062f\u0644 \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u062c\u062f\u0648\u0644 \u06a9\u0627\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Criar o modelo Task<\/span>\nadonis make:model Task\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u062f\u0644 \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 app\/Models\/Task.ts \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DateTime<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">luxon<\/span><span class=\"dl\">'<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">BaseModel<\/span><span class=\"p\">,<\/span> <span class=\"nx\">column<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@ioc:Adonis\/Lucid\/Orm<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">Task<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">BaseModel<\/span> <span class=\"p\">{<\/span>\n  <span class=\"p\">@<\/span><span class=\"nd\">column<\/span><span class=\"p\">({<\/span> <span class=\"na\">isPrimary<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">})<\/span>\n  <span class=\"k\">public<\/span> <span class=\"nx\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span>\n\n  <span class=\"p\">@<\/span><span class=\"nd\">column<\/span><span class=\"p\">()<\/span>\n  <span class=\"k\">public<\/span> <span class=\"nx\">title<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span>\n\n  <span class=\"p\">@<\/span><span class=\"nd\">column<\/span><span class=\"p\">()<\/span>\n  <span class=\"k\">public<\/span> <span class=\"nx\">description<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span>\n\n  <span class=\"p\">@<\/span><span class=\"nd\">column<\/span><span class=\"p\">()<\/span>\n  <span class=\"k\">public<\/span> <span class=\"nx\">isCompleted<\/span><span class=\"p\">:<\/span> <span class=\"nx\">boolean<\/span>\n\n  <span class=\"p\">@<\/span><span class=\"nd\">column<\/span><span class=\"p\">.<\/span><span class=\"nf\">dateTime<\/span><span class=\"p\">({<\/span> <span class=\"na\">autoCreate<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">})<\/span>\n  <span class=\"k\">public<\/span> <span class=\"nx\">createdAt<\/span><span class=\"p\">:<\/span> <span class=\"nx\">DateTime<\/span>\n\n  <span class=\"p\">@<\/span><span class=\"nd\">column<\/span><span class=\"p\">.<\/span><span class=\"nf\">dateTime<\/span><span class=\"p\">({<\/span> <span class=\"na\">autoCreate<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"na\">autoUpdate<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">})<\/span>\n  <span class=\"k\">public<\/span> <span class=\"nx\">updatedAt<\/span><span class=\"p\">:<\/span> <span class=\"nx\">DateTime<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"5_Task_Controller_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  5. Task Controller \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0639\u0645\u0644\u06cc\u0627\u062a CRUD \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Criar o controlador TaskController<\/span>\nadonis make:controller Task\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 app\/Controllers\/Http\/TaskController.ts \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">HttpContextContract<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@ioc:Adonis\/Core\/HttpContext<\/span><span class=\"dl\">'<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">Task<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">App\/Models\/Task<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">TaskController<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">public<\/span> <span class=\"k\">async<\/span> <span class=\"nf\">index<\/span><span class=\"p\">({<\/span> <span class=\"nx\">response<\/span> <span class=\"p\">}:<\/span> <span class=\"nx\">HttpContextContract<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">tasks<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">Task<\/span><span class=\"p\">.<\/span><span class=\"nf\">all<\/span><span class=\"p\">()<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">(<\/span><span class=\"nx\">tasks<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"k\">async<\/span> <span class=\"nf\">store<\/span><span class=\"p\">({<\/span> <span class=\"nx\">request<\/span><span class=\"p\">,<\/span> <span class=\"nx\">response<\/span> <span class=\"p\">}:<\/span> <span class=\"nx\">HttpContextContract<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nf\">only<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">title<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">description<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">is_completed<\/span><span class=\"dl\">'<\/span><span class=\"p\">])<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">task<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">Task<\/span><span class=\"p\">.<\/span><span class=\"nf\">create<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">status<\/span><span class=\"p\">(<\/span><span class=\"mi\">201<\/span><span class=\"p\">).<\/span><span class=\"nf\">json<\/span><span class=\"p\">(<\/span><span class=\"nx\">task<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"k\">async<\/span> <span class=\"nf\">show<\/span><span class=\"p\">({<\/span> <span class=\"nx\">params<\/span><span class=\"p\">,<\/span> <span class=\"nx\">response<\/span> <span class=\"p\">}:<\/span> <span class=\"nx\">HttpContextContract<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">task<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">Task<\/span><span class=\"p\">.<\/span><span class=\"nf\">find<\/span><span class=\"p\">(<\/span><span class=\"nx\">params<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">task<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">return<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">status<\/span><span class=\"p\">(<\/span><span class=\"mi\">404<\/span><span class=\"p\">).<\/span><span class=\"nf\">json<\/span><span class=\"p\">({<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Task not found<\/span><span class=\"dl\">'<\/span> <span class=\"p\">})<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">(<\/span><span class=\"nx\">task<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"k\">async<\/span> <span class=\"nf\">update<\/span><span class=\"p\">({<\/span> <span class=\"nx\">params<\/span><span class=\"p\">,<\/span> <span class=\"nx\">request<\/span><span class=\"p\">,<\/span> <span class=\"nx\">response<\/span> <span class=\"p\">}:<\/span> <span class=\"nx\">HttpContextContract<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">task<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">Task<\/span><span class=\"p\">.<\/span><span class=\"nf\">find<\/span><span class=\"p\">(<\/span><span class=\"nx\">params<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">task<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">return<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">status<\/span><span class=\"p\">(<\/span><span class=\"mi\">404<\/span><span class=\"p\">).<\/span><span class=\"nf\">json<\/span><span class=\"p\">({<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Task not found<\/span><span class=\"dl\">'<\/span> <span class=\"p\">})<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nf\">only<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">title<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">description<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">is_completed<\/span><span class=\"dl\">'<\/span><span class=\"p\">])<\/span>\n    <span class=\"nx\">task<\/span><span class=\"p\">.<\/span><span class=\"nf\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">await<\/span> <span class=\"nx\">task<\/span><span class=\"p\">.<\/span><span class=\"nf\">save<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">(<\/span><span class=\"nx\">task<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"k\">async<\/span> <span class=\"nf\">destroy<\/span><span class=\"p\">({<\/span> <span class=\"nx\">params<\/span><span class=\"p\">,<\/span> <span class=\"nx\">response<\/span> <span class=\"p\">}:<\/span> <span class=\"nx\">HttpContextContract<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">task<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">Task<\/span><span class=\"p\">.<\/span><span class=\"nf\">find<\/span><span class=\"p\">(<\/span><span class=\"nx\">params<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">task<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">return<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">status<\/span><span class=\"p\">(<\/span><span class=\"mi\">404<\/span><span class=\"p\">).<\/span><span class=\"nf\">json<\/span><span class=\"p\">({<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Task not found<\/span><span class=\"dl\">'<\/span> <span class=\"p\">})<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">await<\/span> <span class=\"nx\">task<\/span><span class=\"p\">.<\/span><span class=\"k\">delete<\/span><span class=\"p\">()<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">status<\/span><span class=\"p\">(<\/span><span class=\"mi\">204<\/span><span class=\"p\">).<\/span><span class=\"nf\">json<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"6_%D9%85%D8%B3%DB%8C%D8%B1%D9%87%D8%A7_%D8%B1%D8%A7_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  6. \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0641\u0627\u06cc\u0644 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u062f\u0631 start\/routes.ts \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0638\u06cc\u0641\u0647 CRUD \u0634\u0627\u0645\u0644 \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"nx\">Route<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@ioc:Adonis\/Core\/Route<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"nx\">Route<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/tasks<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nx\">TaskController<\/span><span class=\"p\">.<\/span><span class=\"dl\">'<\/span><span class=\"s1\">index<\/span><span class=\"dl\">'<\/span><span class=\"p\">])<\/span>\n<span class=\"nx\">Route<\/span><span class=\"p\">.<\/span><span class=\"nf\">post<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/tasks<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nx\">TaskController<\/span><span class=\"p\">.<\/span><span class=\"dl\">'<\/span><span class=\"s1\">store<\/span><span class=\"dl\">'<\/span><span class=\"p\">])<\/span>\n<span class=\"nx\">Route<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/tasks\/:id<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nx\">TaskController<\/span><span class=\"p\">.<\/span><span class=\"dl\">'<\/span><span class=\"s1\">show<\/span><span class=\"dl\">'<\/span><span class=\"p\">])<\/span>\n<span class=\"nx\">Route<\/span><span class=\"p\">.<\/span><span class=\"nf\">put<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/tasks\/:id<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nx\">TaskController<\/span><span class=\"p\">.<\/span><span class=\"dl\">'<\/span><span class=\"s1\">update<\/span><span class=\"dl\">'<\/span><span class=\"p\">])<\/span>\n<span class=\"nx\">Route<\/span><span class=\"p\">.<\/span><span class=\"k\">delete<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/tasks\/:id<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nx\">TaskController<\/span><span class=\"p\">.<\/span><span class=\"dl\">'<\/span><span class=\"s1\">destroy<\/span><span class=\"dl\">'<\/span><span class=\"p\">])<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"7_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D8%B1%D8%A7_%D8%AA%D8%B3%D8%AA_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  7. \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0633\u0631\u0648\u0631 AdonisJS \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>adonis serve <span class=\"nt\">--watch<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u06cc\u062f\u06cc \u0686\u0642\u062f\u0631 \u0622\u0633\u0627\u0646 \u0648 \u0633\u0631\u06cc\u0639 \u0627\u0633\u062a\u061f  \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 CLI \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0628\u06cc\u0634\u062a\u0631 \u06a9\u0627\u0631\u0647\u0627\u060c \u06cc\u06a9 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0627\u06cc\u0646 \u062e\u06cc\u0644\u06cc \u062e\u0648\u0628 \u0627\u0633\u062a!!!<\/p>\n<p>\u0645\u0645\u0646\u0648\u0646 \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u0642\u0627\u0644\u0647 \ud83d\ude42 <\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0639\u0631\u0641\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f \u062a\u062c\u0631\u0628\u0647 \u0641\u0639\u0644\u06cc \u062e\u0648\u062f \u0628\u0627 \u0686\u0627\u0631\u0686\u0648\u0628 Adonijs \u0648 MVC (Model-View-Controller) \u0628\u0631\u0627\u06cc Node.js \u0635\u062d\u0628\u062a \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f. \u0628\u0627\u06cc\u062f \u0627\u0639\u062a\u0631\u0627\u0641 \u06a9\u0646\u0645 \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062a\u062c\u0631\u0628\u0647 \u0627\u06cc \u0628\u0627 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 \u062f\u0627\u0634\u062a\u0647 \u0627\u0645\u060c \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0647\u0631\u06af\u0632 \u0627\u0632 100% \u067e\u062a\u0627\u0646\u0633\u06cc\u0644 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0631\u062f\u0647 \u0627\u0645. \u0627\u062e\u06cc\u0631\u0627\u064b \u06cc\u06a9 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u06a9\u0627\u0631\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0645 \u06a9\u0647 \u0628\u0627\u0639\u062b \u0634\u062f AdonisJS \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a &hellip;<\/p>\n","protected":false},"author":2,"featured_media":63803,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media.dev.to\/cdn-cgi\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjk47piu9oi1wqk4fd6gh.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-63802","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/63802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=63802"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/63802\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/63803"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=63802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=63802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=63802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}