{"id":11764,"date":"2023-03-13T06:06:07","date_gmt":"2023-03-13T02:36:07","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/code-a-bus-schedule-cli-with-nodejs-and-python-sqlite3-6nn\/"},"modified":"2023-03-13T06:06:07","modified_gmt":"2023-03-13T02:36:07","slug":"code-a-bus-schedule-cli-with-nodejs-and-python-sqlite3-6nn","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/code-a-bus-schedule-cli-with-nodejs-and-python-sqlite3-6nn\/","title":{"rendered":"\u0628\u0627 Node.js \u0648 Python \u06cc\u06a9 CLI \u0632\u0645\u0627\u0646\u0628\u0646\u062f\u06cc \u0627\u062a\u0648\u0628\u0648\u0633 \u0631\u0627 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0646\u06cc\u062f [ + Sqlite3 ]"},"content":{"rendered":"<div data-article-id=\"1398056\" id=\"article-body\">\n<p>\u0633\u0644\u0627\u0645 \u0628\u0686\u0647 \u0647\u0627 \ud83d\udc4b <br \/>\u0627\u06cc\u0646 \u06cc\u06a9 \u0622\u0645\u0648\u0632\u0634 \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u062c\u062f\u0648\u0644 \u0632\u0645\u0627\u0646\u06cc \u0627\u062a\u0648\u0628\u0648\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Node JS \u0627\u0633\u062a [ +bonus: Python version in the video].<br \/>\u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u0645 \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u0627\u0646 \u0645\u0628\u062a\u062f\u06cc \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u067e\u0633 \u0627\u0632 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0627\u0635\u0648\u0644 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u060c React \u0648 Vue \u0631\u0627 \u06cc\u0627\u062f \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f.  \u062f\u0631 \u0648\u0627\u0642\u0639 \u0627\u06cc\u0646 \u06cc\u06a9 \u0627\u0634\u062a\u0628\u0627\u0647 \u0645\u0647\u0644\u06a9 \u0627\u0633\u062a\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 ES6\u060c \u0646\u0645\u0648\u0646\u0647 \u0627\u0648\u0644\u06cc\u0647\u060c \u062a\u0648\u0627\u0628\u0639 \u0645\u0631\u062a\u0628\u0647 \u0628\u0627\u0644\u0627\u062a\u0631\u060c \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0627\u0646\u060c \u0648\u0639\u062f\u0647 \u0647\u0627\u060c \u062a\u0648\u0627\u0628\u0639 \u067e\u0627\u0633\u062e \u0628\u0647 \u062a\u0645\u0627\u0633 \u0648 \u063a\u06cc\u0631\u0647 \u0648 \u063a\u06cc\u0631\u0647 \u0622\u06af\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f.<br \/>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0645\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0633\u0627\u062f\u0647 \u0647\u0633\u062a\u0645 \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062a\u0648\u0628\u0648\u0633 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u0648 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u0646\u062f.  \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0633\u062a\u0647 \u062e\u0627\u0631\u062c\u06cc \u0627\u0632 \u062c\u0645\u0644\u0647 Figlet\u060c Chalk\u060c SQLite3 \u0648 Readline \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u062e\u0634 \u0627\u0648\u0644 \u06a9\u062f \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 SQLite3 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0630\u0631\u06af\u0627\u0647 \u0627\u0648\u0644\u06cc\u0647 \u0627\u0648\u0644\u06cc\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.  \u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0633\u062a\u0647 sqlite3 \u06cc\u06a9 \u0627\u062a\u0635\u0627\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0633\u067e\u0633 \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u062c\u062f\u0648\u0644 \u0632\u0645\u0627\u0646\u0628\u0646\u062f\u06cc \u062f\u0627\u0631\u0627\u06cc \u062f\u0648 \u0633\u062a\u0648\u0646 \u0627\u0633\u062a: \u0632\u0645\u0627\u0646 \u0648 \u0645\u0633\u06cc\u0631.  \u0633\u062a\u0648\u0646 \u0632\u0645\u0627\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u0644\u06cc\u062f \u0627\u0635\u0644\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u06cc \u0647\u0631 \u0631\u062f\u06cc\u0641 \u062f\u0631 \u062c\u062f\u0648\u0644 \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u0628\u0627\u0634\u062f.  \u0633\u067e\u0633 \u0622\u0631\u0627\u06cc\u0647 \u0627\u06cc \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0632 \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0622\u0645\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u062f\u0631\u062c \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u062c\u062f\u0648\u0644 \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"nx\">figlet<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">figlet<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">chalk<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">chalk<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">sqlite3<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">sqlite3<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">readline<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">readline<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">db<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">sqlite3<\/span><span class=\"p\">.<\/span><span class=\"nx\">Database<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">bus_schedule.db<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">serialize<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">run<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">CREATE TABLE IF NOT EXISTS schedule (time TEXT PRIMARY KEY, route TEXT)<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">initialSchedule<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">8:00am<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Route 1<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">9:30am<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Route 2<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">11:00am<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Route 3<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">1:00pm<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Route 1<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">2:30pm<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Route 2<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">4:00pm<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Route 3<\/span><span class=\"dl\">'<\/span><span class=\"p\">]<\/span>\n  <span class=\"p\">];<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">stmt<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">prepare<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">INSERT OR IGNORE INTO schedule (time, route) VALUES (?, ?)<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">initialSchedule<\/span><span class=\"p\">.<\/span><span class=\"nx\">forEach<\/span><span class=\"p\">((<\/span><span class=\"nx\">scheduleItem<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">stmt<\/span><span class=\"p\">.<\/span><span class=\"nx\">run<\/span><span class=\"p\">(<\/span><span class=\"nx\">scheduleItem<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">});<\/span>\n  <span class=\"nx\">stmt<\/span><span class=\"p\">.<\/span><span class=\"nx\">finalize<\/span><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>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u0627 \u0627\u0632 \u0628\u0633\u062a\u0647 Figlet \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0639\u0646\u0648\u0627\u0646 \u0647\u0646\u0631\u06cc \u0628\u0632\u0631\u06af ASCII \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0627\u06af\u0631 \u0628\u0633\u062a\u0647 Figlet \u0628\u0627 \u062e\u0637\u0627 \u0645\u0648\u0627\u062c\u0647 \u0634\u062f\u060c \u06cc\u06a9 \u067e\u06cc\u063a\u0627\u0645 \u062e\u0637\u0627 \u0631\u0627 \u062f\u0631 \u06a9\u0646\u0633\u0648\u0644 \u0686\u0627\u067e \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0627\u0631\u062c \u0645\u06cc \u0634\u0648\u06cc\u0645.  \u062f\u0631 \u063a\u06cc\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a\u060c \u0639\u0646\u0648\u0627\u0646 \u0631\u0627 \u062f\u0631 \u06a9\u0646\u0633\u0648\u0644 \u0628\u0627 \u0645\u062a\u0646 \u0622\u0628\u06cc \u0686\u0627\u067e \u0645\u06cc \u06a9\u0646\u06cc\u0645.<br \/>\u067e\u0633 \u0627\u0632 \u0686\u0627\u067e \u0633\u0631\u0641\u0635\u0644\u060c \u0627\u0632 \u0628\u0633\u062a\u0647 Chalk \u0628\u0631\u0627\u06cc \u0686\u0627\u067e \u062c\u062f\u0648\u0644 \u0632\u0645\u0627\u0646\u06cc \u0627\u062a\u0648\u0628\u0648\u0633 \u0641\u0639\u0644\u06cc \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u06a9\u0646\u0633\u0648\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0645\u0627 \u0627\u0632 \u0645\u062a\u062f db.all() \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062a\u0645\u0627\u0645 \u0633\u0637\u0631\u0647\u0627 \u0627\u0632 \u062c\u062f\u0648\u0644 \u0632\u0645\u0627\u0646\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0633\u067e\u0633 \u0627\u0632 \u06cc\u06a9 \u062d\u0644\u0642\u0647 forEach \u0628\u0631\u0627\u06cc \u0686\u0627\u067e \u0647\u0631 \u0633\u0637\u0631 \u062f\u0631 \u06a9\u0646\u0633\u0648\u0644 \u062f\u0631 \u0645\u062a\u0646 \u0633\u0628\u0632 \u0648 \u0632\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ Print the heading using Figlet<\/span>\n<span class=\"nx\">figlet<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Bus Schedule<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">,<\/span> <span class=\"nx\">heading<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">chalk<\/span><span class=\"p\">.<\/span><span class=\"nx\">red<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Error: Failed to generate heading.<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\n    <span class=\"k\">return<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">chalk<\/span><span class=\"p\">.<\/span><span class=\"nx\">blue<\/span><span class=\"p\">(<\/span><span class=\"nx\">heading<\/span><span class=\"p\">));<\/span>\n\n  <span class=\"c1\">\/\/ Print the current schedule from the database using Chalk<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Current bus schedule:<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">all<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">SELECT * FROM schedule<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">,<\/span> <span class=\"nx\">rows<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">chalk<\/span><span class=\"p\">.<\/span><span class=\"nx\">red<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Error: Failed to retrieve bus schedule.<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\n      <span class=\"k\">return<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"nx\">rows<\/span><span class=\"p\">.<\/span><span class=\"nx\">forEach<\/span><span class=\"p\">((<\/span><span class=\"nx\">row<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">chalk<\/span><span class=\"p\">.<\/span><span class=\"nx\">green<\/span><span class=\"p\">(<\/span><span class=\"nx\">row<\/span><span class=\"p\">.<\/span><span class=\"nx\">time<\/span><span class=\"p\">)<\/span> <span class=\"o\">+<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">: <\/span><span class=\"dl\">'<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">chalk<\/span><span class=\"p\">.<\/span><span class=\"nx\">yellow<\/span><span class=\"p\">(<\/span><span class=\"nx\">row<\/span><span class=\"p\">.<\/span><span class=\"nx\">route<\/span><span class=\"p\">));<\/span>\n    <span class=\"p\">});<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">''<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">promptUser<\/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>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u06cc\u06a9 \u062a\u0627\u0628\u0639 ()promptUser \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u0632 \u0628\u0633\u062a\u0647 Readline \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u200c\u0628\u0646\u062f\u06cc \u0627\u062a\u0648\u0628\u0648\u0633 \u062c\u062f\u06cc\u062f \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u06cc\u06a9 \u0631\u0627\u0628\u0637 Readline \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0632 \u0645\u062a\u062f rl.question() \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u0628\u062e\u0648\u0627\u0647\u062f \u0645\u0633\u06cc\u0631 \u0648 \u0632\u0645\u0627\u0646 \u0627\u062a\u0648\u0628\u0648\u0633 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u062f.  \u0627\u06af\u0631 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062e\u0627\u0644\u06cc \u0648\u0627\u0631\u062f \u06a9\u0646\u062f\u060c \u067e\u06cc\u0627\u0645 \u062e\u062f\u0627\u062d\u0627\u0641\u0638\u06cc \u0631\u0627 \u0628\u0647 \u06a9\u0646\u0633\u0648\u0644 \u0686\u0627\u067e \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0627\u062a\u0635\u0627\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0645\u06cc \u0628\u0646\u062f\u06cc\u0645 \u0648 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0627\u0631\u062c \u0645\u06cc \u0634\u0648\u06cc\u0645.  \u062f\u0631 \u063a\u06cc\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a\u060c \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u062a\u062c\u0632\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0632 \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0622\u0645\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u062f\u0631\u062c \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u062c\u062f\u0648\u0644 \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0627\u06af\u0631 \u062f\u0631\u062c \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0627\u0634\u062f\u060c \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0631\u0627 \u0628\u0647 \u06a9\u0646\u0633\u0648\u0644 \u0686\u0627\u067e \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u062a\u0627\u0628\u0639 ()promptUser \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ Prompt the user to enter new bus routes and times and update the database<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nx\">promptUser<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">rl<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">readline<\/span><span class=\"p\">.<\/span><span class=\"nx\">createInterface<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">input<\/span><span class=\"p\">:<\/span> <span class=\"nx\">process<\/span><span class=\"p\">.<\/span><span class=\"nx\">stdin<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">output<\/span><span class=\"p\">:<\/span> <span class=\"nx\">process<\/span><span class=\"p\">.<\/span><span class=\"nx\">stdout<\/span>\n  <span class=\"p\">});<\/span>\n  <span class=\"nx\">rl<\/span><span class=\"p\">.<\/span><span class=\"nx\">question<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Enter a new bus route and time (e.g. <\/span><span class=\"se\">\\'<\/span><span class=\"s1\">5:00pm Route 4<\/span><span class=\"se\">\\'<\/span><span class=\"s1\">), or press enter to quit: <\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">input<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">rl<\/span><span class=\"p\">.<\/span><span class=\"nx\">close<\/span><span class=\"p\">();<\/span>\n    <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">input<\/span><span class=\"p\">.<\/span><span class=\"nx\">trim<\/span><span class=\"p\">()<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">''<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Goodbye!<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n      <span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">close<\/span><span class=\"p\">();<\/span>\n      <span class=\"k\">return<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">time<\/span><span class=\"p\">,<\/span> <span class=\"nx\">route<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">input<\/span><span class=\"p\">.<\/span><span class=\"nx\">trim<\/span><span class=\"p\">().<\/span><span class=\"nx\">split<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\"> <\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">time<\/span> <span class=\"o\">||<\/span> <span class=\"o\">!<\/span><span class=\"nx\">route<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">chalk<\/span><span class=\"p\">.<\/span><span class=\"nx\">red<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Error: Invalid input. Please enter the bus route and time in the correct format.<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\n      <span class=\"nx\">promptUser<\/span><span class=\"p\">();<\/span>\n      <span class=\"k\">return<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">run<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">INSERT OR IGNORE INTO schedule (time, route) VALUES (?, ?)<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nx\">time<\/span><span class=\"p\">,<\/span> <span class=\"nx\">route<\/span><span class=\"p\">],<\/span> <span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">chalk<\/span><span class=\"p\">.<\/span><span class=\"nx\">red<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Error: Failed to add new bus route.<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\n        <span class=\"nx\">promptUser<\/span><span class=\"p\">();<\/span>\n        <span class=\"k\">return<\/span><span class=\"p\">;<\/span>\n      <span class=\"p\">}<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">chalk<\/span><span class=\"p\">.<\/span><span class=\"nx\">green<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">New bus route added successfully!<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\n      <span class=\"nx\">promptUser<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\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>\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0646\u062d\u0648\u0647 \u0627\u0646\u062c\u0627\u0645 \u0647\u0645\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0627 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c \u0622\u0645\u0648\u0632\u0634 \u0648\u06cc\u062f\u06cc\u0648\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=DZUl3oJGZTk\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=DZUl3oJGZTk<\/a><br \/>\n<\/iframe>\n<\/p>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc\u060c \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 CLI \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0633\u0627\u062f\u0647 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0627\u0632 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u06a9\u0645\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062a\u0648\u0628\u0648\u0633 \u0631\u0646\u06af\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0646\u0647\u0627 \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0648 \u0632\u0645\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 SQLite3\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. <br \/>\u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0647 \u06af\u0648\u0646\u0647 \u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0633\u0627\u062f\u0647 \u0648 \u0622\u0633\u0627\u0646 \u0628\u0627\u0634\u062f\u060c \u0628\u0627 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0648\u0627\u0636\u062d \u0648 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062e\u0637\u0627 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u06a9\u0627\u0631\u0628\u0631.<br \/>\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0645\u0648\u0631\u062f \u067e\u0633\u0646\u062f \u0634\u0645\u0627 \u0648\u0627\u0642\u0639 \u0634\u0648\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0648\u06cc\u062f\u06cc\u0648 \u0631\u0627 \u0644\u0627\u06cc\u06a9 \u06a9\u0646\u06cc\u062f\u060c \u0622\u0646 \u0631\u0627 \u0628\u0627 \u062f\u0648\u0633\u062a\u0627\u0646 \u062e\u0648\u062f \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f \u0648 \u06a9\u0627\u0646\u0627\u0644 \u0645\u0646 \u0631\u0627 \u0633\u0627\u0628\u0633\u06a9\u0631\u0627\u06cc\u0628 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0622\u0645\u0648\u0632\u0634 \u0647\u0627 \u0648 \u0634\u0648\u0631\u062a \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0622\u067e\u0644\u0648\u062f \u0634\u062f\u0647 \u0647\u0631 \u0647\u0641\u062a\u0647 \u0631\u0627 \u0627\u0632 \u062f\u0633\u062a \u0646\u062f\u0647\u06cc\u062f.<\/p>\n<p>\u0628\u0627 \u0645\u0646 \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0647\u0627\u06cc \u0627\u062c\u062a\u0645\u0627\u0639\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f:<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0633\u0644\u0627\u0645 \u0628\u0686\u0647 \u0647\u0627 \ud83d\udc4b \u0627\u06cc\u0646 \u06cc\u06a9 \u0622\u0645\u0648\u0632\u0634 \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u062c\u062f\u0648\u0644 \u0632\u0645\u0627\u0646\u06cc \u0627\u062a\u0648\u0628\u0648\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Node JS \u0627\u0633\u062a [ +bonus: Python version in the video].\u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u0645 \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u0627\u0646 \u0645\u0628\u062a\u062f\u06cc \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u067e\u0633 \u0627\u0632 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0627\u0635\u0648\u0644 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u060c React \u0648 Vue \u0631\u0627 \u06cc\u0627\u062f \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f. \u062f\u0631 \u0648\u0627\u0642\u0639 \u0627\u06cc\u0646 \u06cc\u06a9 \u0627\u0634\u062a\u0628\u0627\u0647 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":11766,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-11764","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\/11764","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=11764"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/11764\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/11766"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=11764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=11764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=11764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}