{"id":30306,"date":"2026-10-03T17:22:00","date_gmt":"2026-10-03T17:22:00","guid":{"rendered":"https:\/\/umang.pk\/2026\/10\/03\/node-js-%d8%a7%d9%88%d8%b1-express-js-%db%81%db%8c%d9%86%da%88-%d8%a8%da%a9-%d8%a8%d8%b1%d8%a7%d8%a6%db%92-%d8%a7%d8%a8%d8%aa%d8%af%d8%a7%d8%a6%db%8c%db%81-%d8%b3%d8%b1%d9%88%d8%b1%d8%b2%d8%8c\/"},"modified":"2026-10-03T17:22:02","modified_gmt":"2026-10-03T17:22:02","slug":"node-js-%d8%a7%d9%88%d8%b1-express-js-%db%81%db%8c%d9%86%da%88-%d8%a8%da%a9-%d8%a8%d8%b1%d8%a7%d8%a6%db%92-%d8%a7%d8%a8%d8%aa%d8%af%d8%a7%d8%a6%db%8c%db%81-%d8%b3%d8%b1%d9%88%d8%b1%d8%b2%d8%8c","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/10\/03\/node-js-%d8%a7%d9%88%d8%b1-express-js-%db%81%db%8c%d9%86%da%88-%d8%a8%da%a9-%d8%a8%d8%b1%d8%a7%d8%a6%db%92-%d8%a7%d8%a8%d8%aa%d8%af%d8%a7%d8%a6%db%8c%db%81-%d8%b3%d8%b1%d9%88%d8%b1%d8%b2%d8%8c\/","title":{"rendered":"Node.js \u0627\u0648\u0631 Express.js \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u0628\u0631\u0627\u0626\u06d2 \u0627\u0628\u062a\u062f\u0627\u0626\u06cc\u06c1 &#8211; \u0633\u0631\u0648\u0631\u0632\u060c \u0631\u0648\u0679\u0633\u060c \u0631\u0648\u0679\u0631\u0632\u060c \u0627\u0648\u0631 \u0648\u06cc\u0648\u0632 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a"},"content":{"rendered":"\n<div id=\"\">\n<p>Node.js \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0648\u06cc\u0628 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u0646 \u0679\u0627\u0626\u0645 \u0645\u0627\u062d\u0648\u0644 \u06c1\u06d2\u06d4 \u0686\u06be\u0648\u0679\u06d2 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0633\u06d2 \u0644\u06d2 \u06a9\u0631 \u0628\u0691\u06cc \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u062a\u06a9\u060c Node.js APIs \u0627\u0648\u0631 \u0679\u0648\u0644\u0632 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u06a9\u06cc \u0622\u067e \u06a9\u0648 \u0645\u062e\u062a\u0644\u0641 \u0642\u0633\u0645 \u06a9\u06d2 \u0645\u0627\u062d\u0648\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 JavaScript \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0644\u06cc\u06a9\u0646 Node.js \u0633\u06cc\u06a9\u06be\u0646\u0627 \u0645\u0634\u06a9\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a \u0633\u0627\u0631\u06d2 APIs\u060c \u067e\u06cc\u06a9\u062c\u0632\u060c \u0679\u0648\u0644\u0632 \u0627\u0648\u0631 \u062a\u0635\u0648\u0631\u0627\u062a \u06c1\u06cc\u06ba \u06a9\u06c1 \u0627\u0633\u06d2 \u06a9\u06be\u0648\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633\u06cc \u0644\u06cc\u06d2 \u06cc\u06c1 \u06a9\u062a\u0627\u0628 Node.js \u06a9\u06d2 \u0627\u0646 \u0628\u0646\u06cc\u0627\u062f\u06cc \u062a\u0635\u0648\u0631\u0627\u062a \u067e\u0631 \u062a\u0648\u062c\u06c1 \u0645\u0631\u06a9\u0648\u0632 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u0646 \u06a9\u06cc \u0622\u067e \u06a9\u0648 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u062e\u0644\u0641\u0634\u0627\u0631 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0639\u0645\u0644\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0622\u067e \u0633\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 Node.js \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633 \u06a9\u06d2 \u0628\u0644\u0679 \u0627\u0646 APIs \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u06cc\u0633\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba \u062c\u0648 \u0641\u0627\u0626\u0644\u0648\u06ba\u060c URLs\u060c \u0627\u06cc\u0648\u0646\u0679\u0633\u060c HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u0632\u06cc\u062f \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0639\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e \u06cc\u06c1 \u0628\u06be\u06cc \u0633\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d Express.js \u0628\u06c1\u062a \u0633\u06d2 \u0639\u0627\u0645 \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0631\u0648\u0679\u0633\u060c \u0631\u0627\u0624\u0679\u0631\u0632\u060c \u06a9\u0646\u0679\u0631\u0648\u0644\u0631\u0632\u060c \u0648\u06cc\u0648\u0632\u060c \u0627\u0648\u0631 \u062f\u0648\u0633\u0631\u06d2 \u062a\u0635\u0648\u0631\u0627\u062a \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u062c\u0648 \u0648\u06cc\u0628 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0624\u062b\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u0627\u0648\u0631 \u0628\u0646\u0627\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u067e \u06a9\u06cc \u0645\u062f\u062f \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0688\u06cc\u0648\u0644\u067e\u0645\u0646\u0679 \u0633\u06cc\u06a9\u06be \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u0627\u067e\u0646\u06cc JavaScript \u06a9\u06cc \u0645\u06c1\u0627\u0631\u062a \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0627 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u06cc\u06c1 \u06af\u0627\u0626\u06cc\u0688 \u0622\u067e \u06a9\u0648 Node.js \u0627\u0648\u0631 Express.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0648\u0627\u0636\u062d\u060c \u0639\u0645\u0644\u06cc \u0628\u0646\u06cc\u0627\u062f \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-what-you-should-already-know\">\u062c\u0648 \u0622\u067e \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/h2>\n<p>\u06cc\u06c1 \u06af\u0627\u0626\u06cc\u0688 \u0627\u0646 \u0642\u0627\u0631\u0626\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2 \u062c\u0648 \u0628\u0646\u06cc\u0627\u062f\u06cc JavaScript \u062c\u0627\u0646\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 Node.js \u0627\u0648\u0631 Express.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0648\u06cc\u0628 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u0628\u0646\u0627\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u06d2 \u0648\u0627\u0642\u0641 \u06c1\u06cc\u06ba \u062a\u0648 \u0622\u067e \u06a9\u0648 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0642\u06cc\u0645\u062a \u0645\u0644\u06d2 \u06af\u06cc\u06d4<\/p>\n<ul>\n<li>\n<p>JavaScript \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0628\u0627\u062a\u06cc\u06ba\u060c \u0628\u0634\u0645\u0648\u0644 \u0645\u062a\u063a\u06cc\u0631\u0627\u062a\u060c \u0641\u0646\u06a9\u0634\u0646\u0632\u060c \u0635\u0641\u0648\u06ba \u0627\u0648\u0631 \u0627\u0634\u06cc\u0627\u0621\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0642\u0627\u0645\u06cc \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 JavaScript\u060c \u0628\u0634\u0645\u0648\u0644 \u06a9\u0627\u0644 \u0628\u06cc\u06a9\u0633\u060c \u0648\u0639\u062f\u06d2\u060c \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a <code>async<\/code>\/<code>await<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc HTML\u060c \u0628\u0634\u0645\u0648\u0644 \u0644\u0646\u06a9\u0633\u060c \u0641\u0627\u0631\u0645\u0632\u060c \u0627\u0648\u0631 \u0627\u0646 \u067e\u0679 \u0639\u0646\u0627\u0635\u0631\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0641\u0648\u0644\u0688\u0631\u0632 \u06a9\u0648 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u06a9\u0645\u0627\u0646\u0688 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u0631\u0645\u06cc\u0646\u0644 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>Node.js \u06cc\u0627 Express.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0633\u06cc \u0633\u0627\u0628\u0642\u06c1 \u200b\u200b\u062a\u062c\u0631\u0628\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e npm \u067e\u06cc\u06a9\u062c\u0632 \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0648\u0627\u0642\u0641 \u06c1\u06cc\u06ba \u062a\u0648 \u06cc\u06c1 \u0645\u062f\u062f\u06af\u0627\u0631 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0645\u062b\u0627\u0644\u06cc\u06ba \u0622\u067e \u06a9\u0648 \u0645\u0637\u0644\u0648\u0628\u06c1 \u06a9\u0645\u0627\u0646\u0688\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0631\u06c1\u0646\u0645\u0627\u0626\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u06a9\u0648\u0688 \u0627\u06cc\u0688\u06cc\u0679\u0631\u060c \u0627\u06cc\u06a9 \u0648\u06cc\u0628 \u0628\u0631\u0627\u0624\u0632\u0631\u060c \u0627\u0648\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u0646\u0633\u0679\u0627\u0644 \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2:<\/p>\n<p>\u0627\u0646\u0633\u0679\u0627\u0644 \u0648\u0631\u0698\u0646 \u06a9\u0648 \u0686\u0644\u0627 \u06a9\u0631 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-console\">node --version && npm --version\n<\/code><\/pre>\n<p>Node.js \u0645\u06cc\u06ba npm \u0634\u0627\u0645\u0644 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0628\u0646\u0688\u0644 \u0648\u0631\u0698\u0646 \u06cc\u06c1\u0627\u06ba \u062f\u0631\u062c \u0648\u0631\u0698\u0646 \u0633\u06d2 \u067e\u0631\u0627\u0646\u0627 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0648\u0646\u0648\u06ba \u0648\u0631\u0698\u0646 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06af\u0631 \u0636\u0631\u0648\u0631\u06cc \u06c1\u0648 \u062a\u0648 \u0627\u0644\u06af \u0633\u06d2 \u0627\u06cc\u0646 \u067e\u06cc \u0627\u06cc\u0645 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 CodeSweetly Package Manager Guide \u0627\u0646 \u0679\u0648\u0644\u0632 \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644\u060c \u0627\u067e \u0688\u06cc\u0679 \u0627\u0648\u0631 \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u0628\u062a\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0641\u0627\u0626\u0644 \u062a\u062e\u0644\u06cc\u0642 \u06a9\u0645\u0627\u0646\u0688 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0645\u0627\u062d\u0648\u0644 \u06a9\u0648 \u0641\u0631\u0636 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>mkdir<\/code> \u0627\u0648\u0631 <code>touch<\/code> \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u067e macOS \u06cc\u0627 Linux \u067e\u0631 Bash \u06cc\u0627 zsh\u060c Windows \u067e\u0631 Git Bash\u060c \u06cc\u0627 WSL (Windows Subsystem for Linux) \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0644\u06cc\u0646\u06a9\u0633 \u0634\u06cc\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u0627\u06cc\u0688\u06cc\u0679\u0631 \u0645\u06cc\u06ba \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0641\u0627\u0626\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0641\u0648\u0644\u0688\u0631 \u0628\u06be\u06cc \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u0626\u06cc\u06d2 Node.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-what-exactly-is-nodejs\">Node.js \u0628\u0627\u0644\u06a9\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>Node.js \u06a9\u0648\u0626\u06cc \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06cc\u0627 \u0632\u0628\u0627\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06cc\u06c1 \u0627\u06cc\u06a9 \u0645\u062a\u0636\u0627\u062f\u060c \u0648\u0627\u0642\u0639\u06c1 \u0633\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0645\u0627\u062d\u0648\u0644 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0679\u0648\u0644\u0632 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u062c\u06cc\u0633\u06d2:<\/p>\n<ul>\n<li>\n<p>\u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0627\u0646\u062c\u0646 (\u06af\u0648\u06af\u0644 V8)<\/p>\n<\/li>\n<li>\n<p>\u0645\u0627\u0688\u06cc\u0648\u0644 \u0633\u0633\u0679\u0645 (CommonJS \u0627\u0648\u0631 ES \u0645\u0627\u0688\u06cc\u0648\u0644\u0632)<\/p>\n<\/li>\n<li>\n<p>\u0622\u067e\u0631\u06cc\u0679\u0646\u06af \u0633\u0633\u0679\u0645 API (<code>os<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0641\u0627\u0626\u0644 \u0633\u0633\u0679\u0645 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc (<code>fs<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0646\u06cc\u0679 \u0648\u0631\u06a9 \u0633\u0631\u0648\u0631 (<code>http<\/code>\u060c <code>net<\/code>\u060c <code>https<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u0645\u0648\u0631\u06cc \u0645\u06cc\u0646\u062c\u0645\u0646\u0679 \u0679\u0648\u0644\u0632<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u0648\u0646\u0679 \u0644\u0648\u067e<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u0627\u062c\u0632\u0627\u0621 Node.js \u06a9\u0627 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06be\u0627\u0646\u0686\u06c1 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062c\u0633 \u0633\u06d2 JavaScript \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u0686\u0644 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 Node.js \u06a9\u0648 \u0627\u06cc\u06a9 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u0644\u06cc\u0633 \u0631\u0646 \u0679\u0627\u0626\u0645 \u0645\u0627\u062d\u0648\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062f\u06a9\u06be\u0627\u062a\u06cc \u06c1\u06d2 \u062c\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0633\u0627\u0626\u0632 \u06a9\u06cc JavaScript \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u0628\u0646\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06be\u0627\u0646\u0686\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0633\u0631\u0648\u0631\u0632\u060c CLI\u060c \u0627\u0633\u06a9\u0631\u067e\u0679\u0633\u060c \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u0627\u0633\u0679\u06cc\u06a9 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632\u06d4<\/p>\n<p>\u0622\u0626\u06cc\u06d2 Node.js \u0627\u0648\u0631 Express.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0646\u0627 \u06a9\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0645\u06cc\u06ba \u0646\u0645\u0627\u06cc\u0627\u06ba \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u0646\u06a9\u0627\u062a \u067e\u0631 \u0628\u0627\u062a \u06a9\u0631\u06cc\u06ba\u06d4 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u06cc\u06a9 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-create-a-new-directory-for-your-project\">\u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>mkdir<\/code> \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 CLI \u06a9\u0645\u0627\u0646\u0688 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-console\">mkdir codesweetly-nodejs-app-001\n<\/code><\/pre>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u0622\u067e \u062c\u0648 \u0628\u06be\u06cc \u0646\u0627\u0645 \u0686\u0627\u06c1\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba <code>codesweetly-nodejs-app-001<\/code> \u0635\u0631\u0641 \u0645\u0638\u0627\u06c1\u0631\u06d2 \u06a9\u06d2 \u0645\u0642\u0627\u0635\u062f \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<p>\u067e\u06be\u0631 \u0627\u067e\u0646\u06cc \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u062c\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0645\u0627\u0646\u0688 \u0644\u0627\u0626\u0646 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">cd codesweetly-nodejs-app-001\n<\/code><\/pre>\n<h3 id=\"heading-create-a-packagejson-file\">\u0628\u0646\u0627\u0646\u0627 <code>package.json<\/code> \u0641\u0627\u0626\u0644<\/h3>\n<p>\u0627\u06cc\u0646 \u067e\u06cc \u0627\u06cc\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4 <code>package.json<\/code> \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0641\u0627\u0626\u0644 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">npm init -y\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631\u06cc\u06ba: <code>main<\/code> \u0645\u06cc\u062f\u0627\u0646 \u06a9\u06d2 <code>package.json<\/code>:<\/p>\n<pre><code class=\"language-console\">npm pkg delete main\n<\/code><\/pre>\n<p><strong>\u0679\u067e:<\/strong> \u06a9\u06c1 <code>main<\/code> \u0645\u06cc\u062f\u0627\u0646 <code>package.json<\/code> \u062c\u0628 \u06a9\u0648\u0626\u06cc \u062f\u0648\u0633\u0631\u0627 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u067e\u06cc\u06a9\u062c \u06a9\u0648 \u0644\u0648\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u067e\u06cc\u06a9\u062c \u06a9\u06d2 \u0627\u0646\u0679\u0631\u06cc \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u06af\u06cc \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0622\u067e \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0686\u0644\u0627 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba \u06af\u06d2\u06d4 \u0627\u0633\u06d2 \u0648\u06cc\u0633\u06d2 \u06c1\u06cc \u0686\u06be\u0648\u0691 \u062f\u06cc\u0646\u0627 \u0628\u06be\u06cc \u0628\u06d2 \u0636\u0631\u0631 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-why-nodejs\">Node.js \u06a9\u06cc\u0648\u06ba\u061f<\/h2>\n<p>JavaScript \u0627\u0635\u0644 \u0645\u06cc\u06ba \u0648\u06cc\u0628 \u0628\u0631\u0627\u0624\u0632\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633\u06d2 \u062f\u0648\u0633\u0631\u06d2 \u0645\u0627\u062d\u0648\u0644 \u0645\u06cc\u06ba \u0628\u06be\u06cc \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06be\u0627\u0646\u0686\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0646\u0648\u0688 \u06a9\u06cc 2009 \u06a9\u06cc \u0631\u06cc\u0644\u06cc\u0632 \u0646\u06d2 \u0648\u06cc\u0628 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u0627\u062d\u0648\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u06cc\u0627\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u0626\u06cc\u06d2 \u0633\u0633\u0679\u0645 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-1-create-a-javascript-file\">1. JavaScript \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0646\u0648\u0688 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0627\u0626\u06cc\u062f \u0634\u062f\u06c1 \u062e\u0648\u0644\u0648\u06ba \u0645\u06cc\u06ba <code>touch<\/code>Bash \u06cc\u0627 zsh \u062c\u06cc\u0633\u06cc \u0686\u06cc\u0632\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba: \u0628\u0635\u0648\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u0622\u067e \u06a9\u0627 \u06a9\u0648\u0688 \u0627\u06cc\u0688\u06cc\u0679\u0631 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-console\">touch console.js\n<\/code><\/pre>\n<h3 id=\"heading-2-write-your-javascript-program\">2. \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u0644\u06a9\u06be\u06cc\u06ba\u06d4<\/h3>\n<p>\u0646\u0626\u06cc \u0628\u0646\u0627\u0626\u06cc \u06af\u0626\u06cc JavaScript \u0641\u0627\u0626\u0644 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u067e\u0646\u0627 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u0644\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">console.log(\"=== Hello from the CodeSweetly Team! ===\");\nconsole.log(\"We hope you have fun Coding Sweetly with Node.js.\");\nconsole.log(\"Thank you for being part of the CodeSweetly community.\");\nconsole.log(\"=== Keep coding. Keep creating. Keep shipping. ===\");\n<\/code><\/pre>\n<h3 id=\"heading-3-run-your-javascript-program\">3. \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06af\u0631 \u0622\u067e Node.js \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>node<\/code> \u06a9\u0645\u0627\u0646\u0688 \u062c\u0648 \u0622\u067e \u06a9\u0645\u0627\u0646\u0688 \u0644\u0627\u0626\u0646 \u0633\u06d2 \u0646\u0648\u0688 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">node console.js\n<\/code><\/pre>\n<p>\u0622\u067e \u06a9\u0645\u0627\u0646\u0688\u0632 \u0628\u06be\u06cc \u0634\u0627\u0645\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>\"scripts\"<\/code> \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0627 \u0645\u06cc\u062f\u0627\u0646 <code>package.json<\/code> \u0641\u0627\u0626\u0644:<\/p>\n<pre><code class=\"language-json\">{\n  \"scripts\": {\n    \"start\": \"node console.js\",\n    \"test\": \"echo \"Error: no test specified\" && exit 1\"\n  }\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0622\u067e \u06a9\u0648 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u0627\u0633 \u0637\u0631\u062d \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-console\">npm run start\n<\/code><\/pre>\n<p>\u062c\u0628 \u0622\u067e \u0627\u0633\u06a9\u0631\u067e\u0679 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0646\u0648\u0688 \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0648 \u0622\u067e \u06a9\u06d2 \u0679\u0631\u0645\u06cc\u0646\u0644 \u067e\u0631 \u067e\u0631\u0646\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0637\u0631\u062d \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627:<\/p>\n<pre><code class=\"language-console\">$ npm run start\n\n> codesweetly-nodejs-app-001@1.0.0 start\n> node console.js\n\n=== Hello from the CodeSweetly Team! ===\nWe hope you have fun Coding Sweetly with Node.js.\nThank you for being part of the CodeSweetly community.\n=== Keep coding. Keep creating. Keep shipping. ===\n<\/code><\/pre>\n<p>\u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0622\u067e \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0622\u067e \u0646\u06d2 \u0627\u067e\u0646\u06d2 \u0648\u06cc\u0628 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u0633\u06d2 \u0686\u0644\u0627\u06cc\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0648\u06c1 \u0686\u06cc\u0632 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba Node.js \u06c1\u0645\u0627\u0631\u06cc \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u06cc\u0628 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648\u0688 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631\u060c \u0627\u06cc\u0648\u0646\u0679 \u0633\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0631\u0646 \u0679\u0627\u0626\u0645 \u0645\u0627\u062d\u0648\u0644\u06d4 \u0622\u067e \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u0648 \u0628\u06be\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u0626\u06cc\u06d2 \u0628\u062d\u062b \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06a9\u06cc\u0633\u06d2\u06d4<\/p>\n<h3 id=\"heading-4-automatically-rerun-your-javascript-program\">4. \u062e\u0648\u062f\u06a9\u0627\u0631 \u0637\u0648\u0631 \u067e\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/h3>\n<p>\u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0637\u0648\u0631 \u067e\u0631\u060c Node.js \u0622\u067e \u0633\u06d2 \u06c1\u0631 \u0628\u0627\u0631 \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u0627 \u062a\u0642\u0627\u0636\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u0644\u0627\u06af\u0648 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u062f\u0633\u062a\u06cc \u0639\u0645\u0644 \u06a9\u0648 \u062f\u06c1\u0631\u0627\u0646\u0627 \u0628\u0648\u062c\u06be\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u062e\u0648\u0634 \u0642\u0633\u0645\u062a\u06cc \u0633\u06d2\u060c \u0646\u0648\u0688 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>--watch<\/code> \u0639\u0645\u0644 \u0622\u0679\u0648\u0645\u06cc\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u06be\u0646\u0688\u06d2:<\/p>\n<pre><code class=\"language-console\">node --watch filename.extension\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u06c1\u06d2\u06d4 <code>--watch<\/code> Node.js \u06a9\u0648 \u0648\u0627\u0686 \u0645\u0648\u0688 \u0645\u06cc\u06ba \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u06be\u0646\u0688\u0627 \u0644\u06af\u0627\u0626\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u0646\u0648\u0688 \u0645\u062e\u0635\u0648\u0635 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u06c1\u0631 \u0628\u0627\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u0627 \u0633\u0628\u0628 \u0628\u0646\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06cc\u06c1 \u0627\u0646\u062d\u0635\u0627\u0631 \u06af\u0631\u0627\u0641 \u0645\u06cc\u06ba \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p><code>node<\/code>: Node.js \u0627\u0633\u06a9\u0631\u067e\u0679 \u06cc\u0627 REPL \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0645\u0627\u0646\u0688\u06d4<\/p>\n<\/li>\n<li>\n<p><code>--watch<\/code>: \u0646\u0648\u0688 \u06a9\u06d2 \u0645\u0627\u0646\u06cc\u0679\u0631\u0646\u06af \u0645\u0648\u0688 \u06a9\u0648 \u0686\u0627\u0644\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u06be\u0646\u0688\u0627 \u0644\u06af\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code>filename.extension<\/code>: \u0627\u0633\u06a9\u0631\u067e\u0679 \u062c\u0633\u06d2 \u0622\u067e \u0646\u0648\u0688 \u0686\u0644\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0679\u067e:<\/strong> \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u06cc\u06ba: <code>Ctrl + C<\/code> \u0648\u0646\u0688\u0648\u0632\u060c \u0645\u06cc\u06a9 \u0627\u0648 \u0627\u06cc\u0633 \u06cc\u0627 \u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631\u06d4<\/p>\n<p>\u06a9\u06c1 <code>--watch<\/code> \u062c\u06be\u0646\u0688\u0627 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0646\u0679\u0631\u06cc \u067e\u0648\u0627\u0626\u0646\u0679 \u0627\u0648\u0631 \u0627\u0633 \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u062a\u0645\u0627\u0645 \u0645\u0627\u0688\u06cc\u0648\u0644\u0632 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u062c\u0628 \u0622\u067e \u0648\u0627\u0686 \u06a9\u0645\u0627\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0646\u0648\u0688 \u0645\u0627\u0646\u06cc\u0679\u0631 \u06a9\u0631\u06d2 \u06af\u0627:<\/p>\n<ul>\n<li>\n<p>\u0622\u0626\u0679\u0645 \u0641\u0627\u0626\u0644 (<code>filename.extension<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u062a\u0645\u0627\u0645 \u0641\u0627\u0626\u0644\u06cc\u06ba \u0628\u0637\u0648\u0631 \u0622\u0626\u0679\u0645 \u0641\u0627\u0626\u0644\u0632 \u062f\u0631\u0622\u0645\u062f \u06a9\u06cc \u06af\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633 \u062f\u0631\u0622\u0645\u062f \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u062f\u06c1 \u062a\u0645\u0627\u0645 \u0641\u0627\u0626\u0644\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u067e\u0648\u0631\u06d2 \u0627\u0646\u062d\u0635\u0627\u0631 \u06af\u0631\u0627\u0641 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2\u060c \u0627\u0648\u0631 \u0627\u0633\u06cc \u0637\u0631\u062d.<\/p>\n<\/li>\n<\/ul>\n<p>\u0646\u0648\u0688 \u06a9\u0627 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0648\u0627\u0686 \u0645\u0648\u0688 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0646\u0648\u0688 \u062f\u0648\u0633\u0631\u06cc \u0641\u0627\u0626\u0644 \u062f\u06cc\u06a9\u06be\u06d2\u060c \u062a\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba: <code>--watch-path<\/code> \u067e\u0631\u0686\u0645:<\/p>\n<pre><code class=\"language-console\">node --watch-path=.\/src --watch-path=.\/tests filename.extension\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>--watch-path<\/code> \u0627\u0648\u067e\u0631 \u06a9\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u0645\u06cc\u06ba \u062c\u06be\u0646\u0688\u0627 \u0646\u0648\u0688 \u06a9\u0648 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u062a\u0645\u0627\u0645 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1\u062a\u0627 \u06c1\u06d2\u06d4 <code>src<\/code> \u0627\u0648\u0631 <code>tests<\/code> \u0627\u06cc\u06a9 \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc (\u0686\u0627\u06c1\u06d2 \u06cc\u06c1 \u0627\u0646\u0679\u0631\u06cc \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u06d2 \u0627\u0646\u062d\u0635\u0627\u0631 \u06af\u0631\u0627\u0641 \u0645\u06cc\u06ba \u0646\u06c1 \u06c1\u0648)\u06d4<\/p>\n<ul>\n<li>\n<p><code>node<\/code>: Node.js \u0627\u0633\u06a9\u0631\u067e\u0679 \u06cc\u0627 REPL \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0645\u0627\u0646\u0688\u06d4<\/p>\n<\/li>\n<li>\n<p><code>--watch-path<\/code>: \u0627\u0633 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u06be\u0646\u0688\u0627 \u0644\u06af\u0627\u0626\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u0646\u0648\u0688 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p><code>filename.extension<\/code>: \u0627\u0633\u06a9\u0631\u067e\u0679 \u062c\u0633\u06d2 \u0622\u067e \u0646\u0648\u0688 \u0686\u0644\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0679\u067e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u06a9\u06c1 <code>--watch-path<\/code> \u062c\u06be\u0646\u0688\u0627 \u0627\u0646\u062d\u0635\u0627\u0631 \u06af\u0631\u0627\u0641 \u0645\u06cc\u06ba \u0645\u0627\u0688\u06cc\u0648\u0644\u0632 \u06a9\u0648 \u0646\u0638\u0631 \u0627\u0646\u062f\u0627\u0632 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0633\u0628\u0628 \u0628\u0646\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0646\u0648\u0688 \u0627\u0646\u062d\u0635\u0627\u0631 \u06af\u0631\u0627\u0641 \u06a9\u0627 \u062d\u0635\u06c1 \u0646\u06c1 \u06c1\u0648\u06d4 <code>--watch-path<\/code>. \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c Node.js \u0635\u0631\u0641 \u0648\u06c1\u06cc \u0631\u0627\u0633\u062a\u06c1 \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u0646\u06d2 \u0628\u06cc\u0627\u0646 \u06a9\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u0648\u0626\u06cc \u062f\u0648\u0633\u0631\u0627 \u0631\u0627\u0633\u062a\u06c1 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code>--watch-path<\/code>    \u06af\u06be\u0691\u06cc \u06a9\u06d2 \u0686\u06c1\u0631\u06d2 \u06a9\u0648 \u062e\u0648\u062f \u0686\u0627\u0644\u0648 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u062a\u0645 \u0628\u06be\u06cc \u067e\u0627\u0633 \u06c1\u0648 \u062c\u0627\u0624 <code>--watch<\/code>\u0646\u0648\u0688\u0633 \u0627\u0628 \u0628\u06be\u06cc \u0635\u0631\u0641 \u0645\u062e\u0635\u0648\u0635 \u0631\u0627\u0633\u062a\u06d2 \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code>--watch-path<\/code>    \u0645\u06cc\u06a9\u0648\u0633 \u0627\u0648\u0631 \u0648\u0646\u0688\u0648\u0632 \u067e\u0631 \u062a\u0639\u0627\u0648\u0646 \u06cc\u0627\u0641\u062a\u06c1\u060c \u0644\u06cc\u06a9\u0646 \u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631 \u0646\u06c1\u06cc\u06ba\u06d4 \u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631\u060c \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba: <code>--watch<\/code> \u0622\u0626\u0679\u0645 \u0641\u0627\u0626\u0644\u0648\u06ba \u0627\u0648\u0631 \u0627\u0646 \u06a9\u06d2 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0648\u0627\u0686 \u06a9\u0645\u0627\u0646\u0688 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u0648\u0688 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0622\u0633\u0627\u0646\u06cc \u0633\u06d2 \u0641\u0627\u0626\u0644 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0627 \u067e\u062a\u06c1 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0646\u0648\u0688 \u0622\u067e \u06a9\u06d2 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0644\u06c1\u0630\u0627\u060c \u0627\u06af\u0631 \u0622\u067e \u06a9\u0627 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u0622\u067e \u06a9\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0688\u06cc\u0679\u0627 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u062e\u0648\u062f \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0631\u06cc\u0641\u0631\u06cc\u0634 \u06a9\u0631\u0646\u0627 \u06c1\u0648\u06af\u0627 \u06cc\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u0648\u0688\u0646\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0631\u06cc\u0642 \u062b\u0627\u0644\u062b \u06a9\u0627 \u0679\u0648\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u0648\u06af\u0627\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>Node.js \u062f\u0648 \u0645\u0627\u0688\u06cc\u0648\u0644 \u0633\u0633\u0679\u0645\u0632 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u0622\u0626\u06cc\u06d2 \u0627\u0646 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0639\u0644\u0648\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-nodes-module-support\">\u0646\u0648\u0688 \u0645\u0627\u0688\u06cc\u0648\u0644 \u0633\u067e\u0648\u0631\u0679<\/h2>\n<p>Node.js CommonJS \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 (<code>.cjs<\/code>) \u0627\u0648\u0631 ECMAScript(<code>.mjs<\/code>) \u0645\u0627\u0688\u06cc\u0648\u0644\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u067e\u0633\u0646\u062f\u06cc\u062f\u06c1 \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 Node.js \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0646\u06cc\u0686\u06d2 <code>script.mjs<\/code> \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0641\u0627\u0626\u0644\u06d4 \u0646\u0648\u0688 \u0627\u0633\u06d2 ECMAScript \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 <code>.mjs<\/code> \u0641\u0627\u0626\u0644 \u06a9\u06cc \u062a\u0648\u0633\u06cc\u0639\u06d4<\/p>\n<p><code>script.mjs<\/code><\/p>\n<pre><code class=\"language-javascript\">import http from \"node:http\";\n<\/code><\/pre>\n<p>\u062f\u0648\u0633\u0631\u06cc \u0637\u0631\u0641\u060c \u0646\u0648\u0688 \u063a\u0648\u0631 \u06a9\u0631\u06d2 \u06af\u0627: <code>script.cjs<\/code> \u0646\u06cc\u0686\u06d2 \u062f\u06cc \u06af\u0626\u06cc JavaScript \u0641\u0627\u0626\u0644 CommonJS \u0645\u0627\u0688\u06cc\u0648\u0644 \u06c1\u06d2\u06d4 <code>.cjs<\/code> \u0641\u0627\u0626\u0644 \u06a9\u06cc \u062a\u0648\u0633\u06cc\u0639\u06d4<\/p>\n<p><code>script.cjs<\/code><\/p>\n<pre><code class=\"language-javascript\">const http = require(\"node:http\");\n<\/code><\/pre>\n<p>\u06c1\u0645 \u06a9\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u06cc \u0642\u0633\u0645 \u0628\u062a\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>.js<\/code> \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0641\u0627\u0626\u0644\u06cc\u06ba\u06d4 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba\u060c \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba: <code>type<\/code> \u0622\u067e \u06a9\u0627 \u0645\u06cc\u062f\u0627\u0646 <code>package.json<\/code> \u0641\u0627\u0626\u0644\u06cc\u06ba \u06c1\u06cc\u06ba:<\/p>\n<p><code>package.json<\/code><\/p>\n<pre><code class=\"language-json\">{\n  \"scripts\": {\n    \"start\": \"node console.js\",\n    \"test\": \"echo \"Error: no test specified\" && exit 1\"\n  },\n  \"type\": \"module\",\n  \"license\": \"ISC\"\n}\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>\"type\": \"module\"<\/code> \u0646\u0648\u0688 \u06a9\u0648 \u0627\u0648\u067e\u0631 \u06a9\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u0645\u06cc\u06ba \u0641\u06cc\u0644\u0688\u0632 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u062f\u06cc\u06ba\u06d4 <code>.js<\/code> \u0627\u0633 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u0646\u0638\u0645 \u0641\u0627\u0626\u0644\u0632 <code>package.json<\/code> ES \u0645\u0627\u0688\u06cc\u0648\u0644\u06d4 \u06af\u06be\u0648\u06ba\u0633\u0644\u0627 <code>package.json<\/code> \u0627\u067e\u0646\u0627 \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u062e\u0648\u062f \u0637\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4 <code>.mjs<\/code> \u0627\u0648\u0631 <code>.cjs<\/code> \u0641\u0627\u0626\u0644 \u0627\u067e\u0646\u06d2 \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0631\u062a\u06cc\u0628 <code>\"type\"<\/code> \u0645\u06cc\u062f\u0627\u0646 <code>\"commonjs\"<\/code> \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u06cc\u0642\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u0626\u06d2 \u06a9\u06c1 \u0646\u0648\u0688 \u0639\u0644\u0627\u062c \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 <code>.js<\/code> \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633 \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u0645\u06cc\u06ba \u0641\u0627\u0626\u0644\u06cc\u06ba CommonJS \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0686\u0646\u062f \u0646\u0648\u0679:<\/p>\n<ul>\n<li>\n<p>ES \u0645\u0627\u0688\u06cc\u0648\u0644 \u0633\u0633\u0679\u0645 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0627 \u0633\u0631\u06a9\u0627\u0631\u06cc \u0645\u0639\u06cc\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06cc\u0648\u0646 \u0688\u0627\u0646\u06af\u0648\u0631 \u0646\u06d2 \u0627\u0633 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u06cc\u0627 \u062c\u0648 \u062c\u0646\u0648\u0631\u06cc 2009 \u0645\u06cc\u06ba CommonJS \u0628\u0646 \u06af\u06cc\u0627\u060c \u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 JavaScript \u0645\u06cc\u06ba \u0633\u0631\u06a9\u0627\u0631\u06cc \u0645\u0639\u06cc\u0627\u0631\u06cc \u0645\u0627\u0688\u06cc\u0648\u0644 \u0633\u0633\u0679\u0645 \u0645\u0648\u062c\u0648\u062f \u062a\u06be\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p>ES \u0645\u0627\u0688\u06cc\u0648\u0644\u0632 2015 \u0645\u06cc\u06ba ECMAScript \u0645\u0639\u06cc\u0627\u0631 \u06a9\u0627 \u062d\u0635\u06c1 \u0628\u0646 \u06af\u0626\u06d2\u06d4 Node.js \u0645\u06cc\u06ba CommonJS \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u062c\u0627\u0631\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>ES \u0645\u0627\u0688\u06cc\u0648\u0644 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0645\u06cc\u06ba \u0645\u0639\u06cc\u0627\u0631\u06cc \u0645\u0627\u0688\u06cc\u0648\u0644 \u0633\u0633\u0679\u0645 \u06c1\u06cc\u06ba\u060c \u0644\u06c1\u0630\u0627 \u06cc\u06c1 \u06af\u0627\u0626\u06cc\u0688 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 ES \u0645\u0627\u0688\u06cc\u0648\u0644\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be Node.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba: <code>\"type\"<\/code> \u0622\u067e \u06a9\u0627 \u0645\u06cc\u062f\u0627\u0646 <code>package.json<\/code> \u0641\u0627\u0626\u0644 \u0627\u0633 \u067e\u0631 \u0633\u06cc\u0679 \u06c1\u06d2: <code>\"module\"<\/code>. \u0628\u0633 \u0627\u067e\u0646\u06cc \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0633\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-console\">npm pkg set type=module\n<\/code><\/pre>\n<p>\u062c\u06c1\u0627\u06ba \u0645\u062a\u0639\u0644\u0642\u06c1 \u06c1\u0648\u060c \u0622\u0626\u06cc\u06d2 CommonJS \u0646\u062d\u0648 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u06cc\u06ba:<\/p>\n<p>\u0627\u0628 \u06c1\u0645 \u0627\u0633 \u0628\u0627\u062a \u067e\u0631 \u062a\u0628\u0627\u062f\u0644\u06c1 \u062e\u06cc\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 Node.js \u06a9\u0648 \u0627\u06cc\u06a9 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06cc\u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u062c\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba \u0648\u0635\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-create-http-servers-with-nodejs\">Node.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 HTTP \u0633\u0631\u0648\u0631 \u0628\u0646\u0627\u0646\u0627<\/h2>\n<p>\u0627\u06cc\u06a9 HTTP \u0633\u0631\u0648\u0631 JavaScript \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u06a9\u0644\u0627\u0626\u0646\u0679\u0633 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u060c \u062c\u06cc\u0633\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631\u060c \u0627\u0648\u0631 \u062c\u0648\u0627\u0628\u0627\u062a \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u06d2 \u0627\u06cc\u067e \u06a9\u06d2 HTTP \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0646 \u0627\u06c1\u0645 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u06c1\u06cc\u06ba:<\/p>\n<ol>\n<li>\n<p>HTTP \u06a9\u06cc \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0645\u062b\u0627\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>Server<\/code> \u0627\u0639\u062a\u0631\u0627\u0636<\/p>\n<\/li>\n<li>\n<p>\u0633\u0633\u0679\u0645 \u067e\u0648\u0631\u0679 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u067e\u0631 \u0633\u0631\u0648\u0631 \u0686\u0644\u06d2 \u06af\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0633\u0631\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0627 \u06a9\u06cc\u0633\u06d2 \u062c\u0648\u0627\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u0622\u0626\u06cc\u06d2 \u062a\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u067e\u0631 \u062a\u0641\u0635\u06cc\u0644 \u0633\u06d2 \u0628\u0627\u062a \u06a9\u0631\u06cc\u06ba\u06d4 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 ES \u0645\u0627\u0688\u06cc\u0648\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">touch server.js\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 \u0646\u0626\u06d2 \u0628\u0646\u0627\u0626\u06d2 \u06af\u0626\u06d2 \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u0648 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 HTTP \u06a9\u06cc \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0645\u062b\u0627\u0644 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4 <code>Server<\/code> \u0627\u0639\u062a\u0631\u0627\u0636<\/p>\n<h3 id=\"heading-initialize-a-new-instance-of-the-http-server-object\">HTTP \u06a9\u06cc \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0645\u062b\u0627\u0644 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 <code>Server<\/code> \u0627\u0639\u062a\u0631\u0627\u0636<\/h3>\n<p>\u0646\u0648\u0688 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>createServer<\/code> HTTP \u0645\u062b\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>Server<\/code> \u0627\u0639\u062a\u0631\u0627\u0636 (<code>http.Server<\/code>)\u06d4<\/p>\n<p>\u0622\u067e \u0627\u0633\u06d2 \u0646\u0648\u0688 \u0633\u06d2 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>http<\/code> \u0645\u0627\u0688\u06cc\u0648\u0644\u0632 \u06c1\u06cc\u06ba:<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import { createServer } from \"node:http\";\n\nconst server = createServer();\n<\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba \u06a9\u06cc\u0627 \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2:<\/p>\n<p>CommonJS \u0645\u062a\u0628\u0627\u062f\u0644 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<p><code>server.cjs<\/code><\/p>\n<pre><code class=\"language-javascript\">const http = require(\"node:http\");\n\nconst server = http.createServer();\n<\/code><\/pre>\n<p>\u0645\u0642\u0627\u0645\u06cc HTTP \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f <code>Server<\/code> \u0622\u0628\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0633\u0631\u0648\u0631 \u06a9\u06cc \u0628\u0646\u062f\u0631\u06af\u0627\u06c1 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-configure-the-systems-port-where-the-server-should-run\">\u0633\u0633\u0679\u0645 \u067e\u0648\u0631\u0679 \u06a9\u0648 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u06cc\u06ba \u062c\u0633 \u067e\u0631 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0686\u0644\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/h3>\n<p>HTTP <code>Server<\/code> \u0627\u0639\u062a\u0631\u0627\u0636 \u06c1\u06d2\u06d4 <code>listen()<\/code> \u0627\u0646 \u0628\u0646\u062f\u0631\u06af\u0627\u06c1\u0648\u06ba \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u062c\u0633 \u067e\u0631 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0686\u0644\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u0627\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<h4 id=\"heading-syntax\">\u0646\u062d\u0648<\/h4>\n<pre><code class=\"language-javascript\">import { createServer } from \"node:http\";\n\nconst server = createServer();\n\nserver.listen(port, hostname, backlog, callback);\n<\/code><\/pre>\n<p>\u0627\u0633 \u0641\u0627\u0631\u0645 \u06a9\u06d2 <code>listen()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u062f\u0631\u062c \u0630\u06cc\u0644 \u062f\u0644\u0627\u0626\u0644 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><code>port<\/code>: (\u0646\u0645\u0628\u0631) \u0648\u06c1 \u067e\u0648\u0631\u0679 \u0646\u0645\u0628\u0631 \u062c\u0633 \u067e\u0631 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u067e\u0631 \u0639\u0645\u0644\u062f\u0631\u0622\u0645\u062f \u0627\u0648\u0631 \u0633\u0646\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4 \u0627\u06af\u0631 \u0686\u06be\u0648\u0691 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u062a\u0648 \u0622\u067e\u0631\u06cc\u0679\u0646\u06af \u0633\u0633\u0679\u0645 \u0627\u06cc\u06a9 \u063a\u06cc\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u067e\u0648\u0631\u0679 \u0645\u062e\u062a\u0635 \u06a9\u0631\u06d2 \u06af\u0627\u06d4 \u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba <code>server.address().port<\/code> \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0646\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06cc\u06c1 \u0627\u0646 \u067e\u0648\u0631\u0679\u0633 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u067e\u0631 \u0648\u06c1 \u0633\u0646 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>hostname<\/code>: (string) \u0648\u06c1 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0646\u0627\u0645 \u06cc\u0627 IP \u067e\u062a\u06c1 \u062c\u0633 \u0633\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06d2 \u06a9\u0646\u06a9\u0634\u0646\u0632 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u06af\u0631 \u0686\u06be\u0648\u0691 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u062a\u0648\u060c \u0633\u0631\u0648\u0631 \u0627\u06cc\u06a9 \u063a\u06cc\u0631 \u0645\u062a\u0639\u06cc\u0646\u06c1 IPv6 \u067e\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2 (<code>::<\/code>) \u067e\u062a\u06c1 \u06cc\u0627 IPv4 (<code>0.0.0.0<\/code>) \u067e\u062a\u06c1\u06d4 \u06cc\u06c1 \u063a\u06cc\u0631 \u0645\u062a\u0639\u06cc\u0646 \u067e\u062a\u06d2 \u0627\u0633 \u0627\u06cc\u0688\u0631\u06cc\u0633 \u0641\u06cc\u0645\u0644\u06cc \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06d2 \u067e\u0627\u0628\u0646\u062f \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba <code>server.address().address<\/code> \u062c\u0628 \u06cc\u06c1 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0646\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u067e\u0627\u0628\u0646\u062f IP \u0627\u06cc\u0688\u0631\u06cc\u0633 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>backlog<\/code>: (\u0646\u0645\u0628\u0631) \u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627\u0621 \u06a9\u0646\u06a9\u0634\u0646 \u0642\u0637\u0627\u0631 \u06a9\u06cc \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0644\u0645\u0628\u0627\u0626\u06cc\u06d4 511 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>callback<\/code>: (\u0641\u0646\u06a9\u0634\u0646) \u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633 \u0648\u0642\u062a \u0627\u0646\u062c\u0627\u0645 \u067e\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba \u0648\u0635\u0648\u0644 \u06a9\u0631\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h4 id=\"heading-example\">\u06c1\u0627\u06ba<\/h4>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import { createServer } from \"node:http\";\n\nconst server = createServer();\n\nserver.listen(3000, \"127.0.0.1\", 511, () => {\n  const info = server.address();\n  console.log(`Server running at http:\/\/${info.address}:\n${info.port}\/`);\n});\n<\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba \u06a9\u06cc\u0627 \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><code>import<\/code>    \u0633\u0648\u0627\u0644: \u062f\u0631\u062c \u0630\u06cc\u0644 \u0644\u0627\u0626\u06cc\u06ba: <code>createServer<\/code> \u0646\u0648\u0688 \u06a9\u0627 API <code>http<\/code> \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u0648 <code>server.js<\/code> ES \u0645\u0627\u0688\u06cc\u0648\u0644\u06d4<\/p>\n<\/li>\n<li>\n<p><code>server<\/code>: HTTP \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062a\u063a\u06cc\u0631 <code>Server<\/code> \u0645\u06cc\u06ba \u062e\u0644\u0627\u0641 \u06c1\u0648\u06ba\u06d4 <code>createServer()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0622\u0624\u0679 \u067e\u0679\u06d4<\/p>\n<\/li>\n<li>\n<p><code>server.listen()<\/code>: \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0646\u06a9\u0634\u0646 \u0633\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 (\u0679\u067e: \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 <code>listening<\/code> \u062c\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u0627\u06cc\u06a9 \u0648\u0627\u0642\u0639\u06c1 \u0627\u0679\u06be\u0627\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4)<\/p>\n<\/li>\n<\/ul>\n<p>CommonJS \u0645\u062a\u0628\u0627\u062f\u0644 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<p><code>server.cjs<\/code><\/p>\n<pre><code class=\"language-javascript\">const http = require(\"node:http\");\n\nconst server = http.createServer();\n\nserver.listen(3000, \"127.0.0.1\", 511, () => {\n  const info = server.address();\n  console.log(`Server running at http:\/\/${info.address}:\n${info.port}\/`);\n});\n<\/code><\/pre>\n<h4 id=\"heading-what-is-the-127001-address\">\u06cc\u06c1 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f <code>127.0.0.1<\/code> \u067e\u062a\u06c1\u061f<\/h4>\n<p>\u06a9\u06c1 <code>127.0.0.1<\/code> \u0627\u06cc\u0688\u0631\u06cc\u0633 IPv4 \u0644\u0648\u067e \u0628\u06cc\u06a9 \u0627\u06cc\u0688\u0631\u06cc\u0633 \u06c1\u06d2 \u062c\u0648 \u0645\u0642\u0627\u0645\u06cc \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u0633\u06d2 \u0645\u0631\u0627\u062f \u06c1\u06d2\u06d4 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0646\u0627\u0645 <code>localhost<\/code> \u06cc\u06c1 \u0645\u0642\u0627\u0645\u06cc \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u062f\u06d2 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u06a9\u06cc \u062a\u0634\u0631\u06cc\u062d \u0627\u0633 \u0637\u0631\u062d \u0628\u06be\u06cc \u06a9\u06cc \u062c\u0627 \u0633\u06a9\u062a\u06cc \u06c1\u06d2: <code>127.0.0.1<\/code> \u06cc\u0627 IPv6 \u0644\u0648\u067e \u0628\u06cc\u06a9 \u0627\u06cc\u0688\u0631\u06cc\u0633\u060c <code>::1<\/code>. \u0622\u067e \u0627\u0633\u06d2 \u0627\u0633 \u0637\u0631\u062d \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import { createServer } from \"node:http\";\n\nconst server = createServer();\n\nserver.listen(3000, \"localhost\", 511, () => {\n  console.log(\"Server running at http:\/\/localhost:3000\/\");\n});\n<\/code><\/pre>\n<p>\u062c\u0628 \u0622\u067e \u0627\u0633 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633 \u0648\u06cc\u0628 \u0627\u06cc\u0688\u0631\u06cc\u0633 \u067e\u0631 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u0627 \u0628\u0631\u0627\u0624\u0632\u0631 \u062c\u0648\u0627\u0628 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u06d2 \u06af\u0627 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u06a9\u0648\u0626\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06c1\u06cc\u0646\u0688\u0644\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u0627 \u06c1\u06d2\u06d4 \u0627\u0628 \u0627\u0633\u06d2 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-configure-the-server-to-respond-to-client-requests\">\u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06a9\u06c1 <code>createServer()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1 \u06c1\u06d2\u06d4 <code>requestListener<\/code> \u0627\u06cc\u06a9 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u062c\u0648 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062c\u0628 \u0628\u06be\u06cc HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062a\u0648 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u06a9\u0627\u0644 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0646\u0648\u0688 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-syntax\">\u0646\u062d\u0648<\/h4>\n<p>\u06a9\u06c1 <code>createServer()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u062f\u0648 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u062f\u0644\u0627\u0626\u0644 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0646\u062d\u0648 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">import { createServer } from \"node:http\";\n\nconst server = createServer(options, callback);\n<\/code><\/pre>\n<ul>\n<li>\n<p><code>options<\/code>: \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0631\u0648\u06cc\u06d2 \u06a9\u0648 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0686\u06cc\u0632\u06d4<\/p>\n<\/li>\n<li>\n<p><code>callback<\/code>: <code>requestListener<\/code> \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u0627\u0648\u0631 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06cc \u0635\u0644\u0627\u062d\u06cc\u062a\u06d4 \u06cc\u06c1 \u062f\u0648 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">import { createServer } from \"node:http\";\n\nconst server = createServer(options, function (request, response) {\n  \/\/ the requestListener function's body\n});\n<\/code><\/pre>\n<p>\u067e\u06cc\u0634\u06a9\u0634 <code>requestListener<\/code> \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646 <code>createServer<\/code>\u062f\u0648\u0633\u0631\u06cc \u062f\u0644\u06cc\u0644 Node.js \u06a9\u0648 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0627\u0633\u06d2 \u0633\u0646\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0631\u062c\u0633\u0679\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u0648 \u06a9\u06c1\u062a\u06cc \u06c1\u06d2\u06d4 <code>\"request\"<\/code> \u0648\u0627\u0642\u0639\u06c1 \u062a\u0648 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0646\u062d\u0648 \u0627\u0633 \u06a9\u06d2 \u0628\u0631\u0627\u0628\u0631 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">import { createServer } from \"node:http\";\n\nconst server = createServer(options);\n\nserver.on(\"request\", function (request, response) {\n  \/\/ the requestListener function's body\n});\n<\/code><\/pre>\n<p><code>server.on(\"request\", callback)<\/code>    \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0648\u0627\u0642\u0639\u0627\u062a \u0633\u0646\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u0648\u0627\u0642\u0639\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0644 \u0628\u06cc\u06a9\u0633 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-example\">\u06c1\u0627\u06ba<\/h4>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Node.js HTTP module\nimport { createServer } from \"node:http\";\n\n\/\/ Specify the hostname and port to run the server\nconst hostname = \"localhost\";\nconst port = 3000;\n\n\/\/ Create a new Server instance with a requestListener callback\nconst server = createServer((req, res) => {\n  res.statusCode = 200; \/\/ Set an OK success (200) response status code\n  res.setHeader(\"Content-Type\", \"text\/plain\"); \/\/ Define the media type of the response data\n  res.end(\"Hello World!\"); \/\/ Specify the response data and close the response stream\n});\n\n\/\/ Run the server on the specified port and hostname\nserver.listen(port, hostname, () => {\n  console.log(`Server running at http:\/\/${hostname}:\n${port}\/`);\n});\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u0645\u06cc\u06ba: <code>requestListener<\/code> \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0627 \u0631\u0633\u067e\u0627\u0646\u0633 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1\u0627\u06ba <code>server.on(\"request\", callback)<\/code> \u0645\u062a\u0628\u0627\u062f\u0644 \u0645\u0646\u0635\u0648\u0628\u06c1:<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Node.js HTTP module\nimport { createServer } from \"node:http\";\n\n\/\/ Specify the hostname and port to run the server\nconst hostname = \"localhost\";\nconst port = 3000;\n\n\/\/ Create a new Server instance\nconst server = createServer();\n\n\/\/ Listen for a request event and execute the requestListener callback\nserver.on(\"request\", (req, res) => {\n  res.statusCode = 200; \/\/ Set an OK success (200) response status code\n  res.setHeader(\"Content-Type\", \"text\/plain\"); \/\/ Define the media type of the response data\n  res.end(\"Hello World!\"); \/\/ Specify the response data and close the response stream\n});\n\n\/\/ Run the server on the specified port and hostname\nserver.listen(port, hostname, () => {\n  console.log(`Server running at http:\/\/${hostname}:\n${port}\/`);\n});\n<\/code><\/pre>\n<p>\u0627\u0628 \u062c\u0628 \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0633\u0631\u0648\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u0646\u062f\u0631\u06af\u0627\u06c1\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc \u06af\u0626\u06cc \u06c1\u06cc\u06ba\u060c \u0622\u067e \u0627\u067e\u0646\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0686\u0644\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">node server.js\n<\/code><\/pre>\n<p>\u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0686\u0644\u0646\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646\u060c \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u0635\u0627\u0631\u0641 \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0648\u06cc\u0628 \u0627\u06cc\u0688\u0631\u06cc\u0633 \u067e\u0631 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e \u0633\u06d2 \u0648\u0633\u0627\u0626\u0644 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0648\u06c1 \u0627\u0633 \u0637\u0631\u062d \u06a9\u0627 \u067e\u06cc\u063a\u0627\u0645 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2: <code>Hello World!<\/code> \u062c\u0648\u0627\u0628 \u062f\u06cc\u06ba \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u062f\u0631\u062c \u0630\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631 \u0645\u06cc\u06ba \u062f\u06a9\u06be\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/10\/1791048119_755_Nodejs-\u0627\u0648\u0631-Expressjs-\u06c1\u06cc\u0646\u0688-\u0628\u06a9-\u0628\u0631\u0627\u0626\u06d2-\u0627\u0628\u062a\u062f\u0627\u0626\u06cc\u06c1-\u0633\u0631\u0648\u0631\u0632\u060c-\u0631\u0648\u0679\u0633\u060c.jpg\" alt=\"\u0622\u067e \u06a9\u0627 \u0628\u0631\u0627\u0624\u0632\u0631 \u062f\u06a9\u06be\u0627\u0626\u06d2 \u06af\u0627: \" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" Hello text at title=\"\"><\/p>\n<p><strong>\u0679\u067e:<\/strong> \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u06cc\u06ba: <code>Ctrl + C<\/code> \u0648\u0646\u0688\u0648\u0632\u060c \u0645\u06cc\u06a9 \u0627\u0648 \u0627\u06cc\u0633 \u06cc\u0627 \u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631\u06d4<\/p>\n<p>\u0627\u06af\u0631\u0686\u06c1 <code>node:http<\/code> \u0686\u0648\u0646\u06a9\u06c1 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0627\u0688\u06cc\u0648\u0644\u0632 Node.js \u0645\u06cc\u06ba \u0628\u0646\u06cc\u0627\u062f\u06cc API \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u0639\u0645\u0644 \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0645\u0642\u0628\u0648\u0644 Node.js \u0648\u06cc\u0628 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0645\u06cc\u06ba Express.js\u060c Fastify\u060c \u0627\u0648\u0631 Koa.js \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u0622\u0626\u06cc\u06d2 Express.js \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 Node.js \u0645\u06cc\u06ba HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u06d2 \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-what-exactly-is-expressjs\">Express.js \u0628\u0627\u0644\u06a9\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>Express.js \u0627\u06cc\u06a9 \u0648\u06cc\u0628 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06c1\u06d2 \u062c\u0648 Node.js \u0645\u06cc\u06ba \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0631\u0648\u0679\u0646\u06af \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062c\u06cc\u0633\u06cc \u0628\u0644\u0679 \u0627\u0646 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0646\u0648\u0688 \u06a9\u06d2 \u0627\u06cc\u0686 \u0679\u06cc \u0679\u06cc \u067e\u06cc \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u0648 \u0628\u0691\u06be\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u06a9\u0648 \u0628\u0627\u0631 \u0628\u0627\u0631 \u06a9\u0648\u0688 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0648\u06cc\u0628 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u0627\u0648\u0631 APIs \u06a9\u0648 \u0645\u0624\u062b\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0628\u0646\u0627\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u0645\u0644\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633\u06d2 \u0627\u067e\u0646\u06d2 Node.js \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<h3 id=\"heading-1-install-express\">1. \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646<\/h3>\n<pre><code class=\"language-console\">npm install express@5.2.1\n<\/code><\/pre>\n<h3 id=\"heading-2-use-expressjs-to-configure-the-projects-nodejs-web-server\">2. Express.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 Node.js \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>JavaScript \u0633\u0631\u0648\u0631 \u0641\u0627\u0626\u0644 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 Express.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Express module\nimport express from \"express\";\n\n\/\/ Create a new Express application instance\nconst app = express();\n\n\/\/ Set the port number where the server will run and listen for requests\nconst port = 3000;\n\n\/\/ Create a route handler for GET requests to the \"https:\/\/www.freecodecamp.org\/\" path\napp.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => res.send(\"Hello, world!\"));\n\n\/\/ Run the server on the specified port\napp.listen(port, () => {\n  console.log(`Server running at http:\/\/localhost:${port}`);\n});\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u06a9\u0648\u0688 \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 APIs \u062c\u06cc\u0633\u06d2 \u0631\u0627\u0624\u0679\u0631\u0632 \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u062b\u0627\u0644\u06cc\u06ba \u0628\u0646\u0627 \u06a9\u0631 Node.js \u0645\u06cc\u06ba HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 <code>app.get()<\/code> \u0627\u0633 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u06cc\u0633\u06d2 \u06a9\u06cc \u062c\u0627\u0626\u06d2 \u06a9\u06c1 \u0633\u0631\u0648\u0631 HTTP GET \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>\/<\/code> \u0631\u0627\u0633\u062a\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 <code>res.send()<\/code> \u0648\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u062c\u0648 HTTP \u062c\u0648\u0627\u0628 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062f\u06c1 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0645\u0646\u0627\u0633\u0628 \u06c1\u06cc\u0688\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 <code>app.listen()<\/code> \u0648\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u062c\u0648 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u067e\u0648\u0631\u0679 \u067e\u0631 Node.js HTTP \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u0648 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0679\u067e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0628\u06cc\u0627\u0646 \u0633\u06d2 <code>app.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => res.send(\"Hello, world!\"))<\/code>\u060c<\/p>\n<ul>\n<li>\n<p><code>app.get()<\/code>    \u06cc\u06c1 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679\u0646\u06af \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>\"https:\/\/www.freecodecamp.org\/\"<\/code>    \u0631\u0627\u0633\u062a\u06c1 \u06c1\u06cc \u0631\u0627\u0633\u062a\u06c1 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>(req, res) => ...<\/code>    \u06cc\u06c1 \u0627\u06cc\u06a9 \u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0641\u0646\u06a9\u0634\u0646 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u067e\u0648\u0631\u0627 \u0628\u06cc\u0627\u0646 \u0627\u06cc\u06a9 \u0631\u0627\u0633\u062a\u06c1 \u06c1\u06d2 (\u06cc\u0627 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641)\u06d4<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0622\u0628\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 (<code>req<\/code> \u0627\u0648\u0631 <code>res<\/code>) \u0646\u0648\u0688 \u06a9\u0627 \u0627\u06cc\u06a9 \u0628\u06c1\u062a\u0631 \u0648\u0631\u0698\u0646 \u06c1\u06d2\u06d4 <code>http.IncomingMessage<\/code> \u0627\u0648\u0631 <code>http.ServerResponse<\/code> \u0627\u0634\u06cc\u0627\u0621 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0648\u0631 \u0631\u0633\u067e\u0627\u0646\u0633 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0627\u0648\u0631 \u0645\u062f\u062f\u06af\u0627\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0627\u06c1\u0645 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u067e\u0631\u0627\u0633\u06cc\u0633 \u0645\u0645\u0627\u062b\u0644 \u0631\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0627\u0633 \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u062a\u0631\u062a\u06cc\u0628 \u0633\u06d2 \u0627\u0646 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u06cc \u06af\u0626\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u062c\u0648\u0627\u0628 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06cc\u0627 \u062f\u0648\u0633\u0631\u06d2 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u0648 \u06cc\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u06a9\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644 \u067e\u0627\u0633 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2: <code>next()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-3-run-the-expressjs-web-server\">3. Express.js \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>node<\/code> Node.js \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 Express.js \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2\u060c \u06a9\u0645\u0627\u0646\u0688 \u06a9\u06d2 \u0628\u0639\u062f \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u06d2 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u0622\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-console\">node server.js\n<\/code><\/pre>\n<p>\u06a9\u06be\u0644\u0627 <code>http:\/\/localhost:3000<\/code> \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 <code>Hello, world!<\/code>.<\/p>\n<p><strong>\u0679\u067e:<\/strong> \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0631\u0648\u06a9\u06cc\u06ba: <code>Ctrl + C<\/code> \u0648\u0646\u0688\u0648\u0632 \u067e\u0631 \u06cc\u0627 <code>Control + C<\/code> macOS \u067e\u0631\u06d4<\/p>\n<h2 id=\"heading-raw-nodejs-code-vs-expressjs-code\">\u062e\u0627\u0645 Node.js \u06a9\u0648\u0688 \u06a9\u0627 Express.js \u06a9\u0648\u0688 \u0633\u06d2 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u0627<\/h2>\n<p>\u0622\u067e \u0648\u06cc\u0628 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u0648\u0688 \u06a9\u0627 \u0645\u0642\u0627\u0645\u06cc HTTP API \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0633\u062a\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u0627\u0648\u0631 URL \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u0646\u0627\u060c \u0631\u0633\u067e\u0627\u0646\u0633 \u06c1\u06cc\u0688\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0627\u0634\u06cc\u0627\u0621 \u06a9\u0648 JSON \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627\u06d4<\/p>\n<p>\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0639\u0644\u0627\u0646\u06cc\u06c1 \u0627\u0646\u062f\u0627\u0632 \u0645\u06cc\u06ba \u062a\u06a9\u0631\u0627\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0645\u0646\u0637\u0642 \u06a9\u0648 \u062e\u0644\u0627\u0635\u06c1 \u06a9\u0631\u06a9\u06d2 Node.js \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u06a9\u06cc \u062a\u0631\u0642\u06cc \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0630\u06cc\u0644 \u0645\u06cc\u06ba \u0646\u0648\u0688 \u0688\u0627\u0679 \u062c\u06d2 \u0627\u06cc\u0633 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0648\u0688 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062f\u0648 \u0645\u062b\u0627\u0644\u06cc\u06ba \u06c1\u06cc\u06ba \u062c\u0648 \u0645\u0642\u0627\u0645\u06cc HTTP \u0645\u0627\u0688\u06cc\u0648\u0644 \u0627\u0648\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0644\u06a9\u06be\u06d2 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-example-1-use-raw-nodejs-to-handle-web-requests\">\u0645\u062b\u0627\u0644 1: \u0645\u0642\u0627\u0645\u06cc Node.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0648\u06cc\u0628 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u0627<\/h3>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0646\u0648\u0688 \u06a9\u06d2 \u0628\u0644\u0679 \u0627\u0646 HTTP \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u0648 \u062f\u0648 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06d2 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: home(<code>\/<\/code>) \u0627\u0648\u0631 \u06a9\u062a\u0627\u0628\u06cc\u06ba (<code>\/books<\/code>) &#8211; \u0645\u0645\u0627\u062b\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 404 \u062c\u0648\u0627\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import { createServer } from \"node:http\";\nconst port = 3000;\n\nconst server = createServer((req, res) => {\n  if (req.method === \"GET\" && req.url === \"https:\/\/www.freecodecamp.org\/\") {\n    res.writeHead(200, { \"Content-Type\": \"text\/plain\" });\n    res.end(\"Welcome to the homepage!\");\n  } else if (req.method === \"GET\" && req.url === \"\/books\") {\n    const books = [\n      { id: 1, name: \"Code React Sweetly\" },\n      { id: 2, name: \"Creating NPM Package\" },\n    ];\n    res.writeHead(200, { \"Content-Type\": \"application\/json\" });\n    res.end(JSON.stringify(books));\n  } else {\n    res.writeHead(404, { \"Content-Type\": \"text\/plain\" });\n    res.end(\"Page not found\");\n  }\n});\n\nserver.listen(port, () => {\n  console.log(`Raw Node server running at http:\/\/localhost:${port}`);\n});\n<\/code><\/pre>\n<p>\u0645\u0630\u06a9\u0648\u0631\u06c1 \u0628\u0627\u0644\u0627 \u0679\u06a9\u0691\u0627 \u0646\u0648\u0688 \u06a9\u0627 \u0645\u0642\u0627\u0645\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>http<\/code> \u0627\u06cc\u06a9 \u0645\u0627\u0688\u06cc\u0648\u0644 \u062c\u0648 \u0627\u06cc\u06a9 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u062e\u0627\u0645 Node.js \u0645\u062b\u0627\u0644 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p><strong>\u062f\u0631\u0633\u062a \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1:<\/strong> <code>if (req.method === \"...\" && req.url === \"...\")<\/code><\/p>\n<\/li>\n<li>\n<p><strong>\u062c\u0648\u0627\u0628\u06cc \u06c1\u06cc\u0688\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba:<\/strong> <code>res.writeHead(...)<\/code><\/p>\n<\/li>\n<li>\n<p><strong>JSON \u0641\u0627\u0631\u0645\u06cc\u0679:<\/strong> <code>JSON.stringify(...)<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0628 \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0633\u06cc \u0637\u0631\u062d \u06a9\u0627 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4 \u0627\u0633 \u0645\u062b\u0627\u0644 \u06a9\u0648 \u0627\u06cc\u06a9 \u0648\u0642\u062a \u0645\u06cc\u06ba \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4 <code>server.js<\/code> \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-example-2-use-expressjs-to-handle-web-requests\">\u0645\u062b\u0627\u0644 2: Express.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0648\u06cc\u0628 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u0627<\/h3>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679 \u06a9\u0648 \u062f\u0648 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u06a9\u0648 \u062c\u0648\u0691\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 (\u06c1\u0648\u0645(<code>\/<\/code>) \u0627\u0648\u0631 \u06a9\u062a\u0627\u0628\u06cc\u06ba (<code>\/books<\/code>) &#8211; \u0645\u0645\u0627\u062b\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 404 \u062c\u0648\u0627\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nconst app = express();\nconst port = 3000;\n\napp.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => {\n  res.send(\"Welcome to the homepage!\");\n});\n\napp.get(\"\/books\", (req, res) => {\n  const books = [\n    { id: 1, name: \"Code React Sweetly\" },\n    { id: 2, name: \"Creating NPM Package\" },\n  ];\n  res.json(books);\n});\n\napp.use((req, res) => {\n  res.status(404).send(\"Page not found\");\n});\n\napp.listen(port, () => {\n  console.log(`Express server running at http:\/\/localhost:${port}`);\n});\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u06a9\u0648\u0688 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u06cc\u06a9 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 Express.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><strong>\u0631\u0648\u0679\u0646\u06af \u0645\u0646\u0637\u0642:<\/strong> Express.js \u0627\u0633 \u0637\u0631\u062d \u0627\u06cc\u06a9 \u0622\u0633\u0627\u0646 \u0631\u0648\u0679 \u0688\u06cc\u06a9\u0644\u0631\u06cc\u0634\u0646 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>app.get()<\/code>\u060c <code>app.post()<\/code>\u0627\u0648\u0631 <code>app.delete()<\/code>\u067e\u06cc\u0686\u06cc\u062f\u06c1 \u0645\u0634\u0631\u0648\u0637 \u0645\u0646\u0637\u0642 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 <code>req.url<\/code> \u0627\u0648\u0631 <code>req.method<\/code> \u06c1\u0631 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062c\u0648\u0627\u0628\u06cc \u06c1\u06cc\u0688\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba:<\/strong> \u0627\u0638\u06c1\u0627\u0631 <code>res.send()<\/code> \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u062c\u0648\u0627\u0628\u06cc \u062c\u0633\u0645 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0645\u0646\u0627\u0633\u0628 \u062c\u0648\u0627\u0628\u06cc \u06c1\u06cc\u0688\u0631\u0632 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>res.status()<\/code> \u062c\u0628 \u0622\u067e \u06a9\u0648 \u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u0648\u0688 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u060c \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0627\u0648\u067e\u0631 404 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>JSON \u0641\u0627\u0631\u0645\u06cc\u0679:<\/strong> \u0627\u0638\u06c1\u0627\u0631 <code>res.json()<\/code> \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u062e\u0648\u062f \u06a9\u0627\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0622\u0628\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u0627\u06cc\u06a9 \u062f\u0631\u0633\u062a JSON \u062c\u0648\u0627\u0628 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0633\u06cc\u0631\u06cc\u0644\u0627\u0626\u0632\u06cc\u0634\u0646 \u0627\u0648\u0631 \u06c1\u06cc\u0688\u0631 \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-important-stuff-to-know-about-creating-expressjs-web-servers-in-nodejs\">Node.js \u0645\u06cc\u06ba Express.js \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06c1\u0645 \u0686\u06cc\u0632\u06cc\u06ba<\/h2>\n<p>\u0627\u067e\u0646\u06d2 Node.js \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba Express.js \u0633\u0631\u0648\u0631 \u0628\u0646\u0627\u062a\u06d2 \u0648\u0642\u062a\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u06c1\u0645 \u0646\u06a9\u0627\u062a \u06a9\u0648 \u0630\u06c1\u0646 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u06cc\u06ba:<\/p>\n<h3 id=\"heading-its-common-to-call-applisten-last\">\u067e\u06a9\u0627\u0631\u0646\u0627 \u0639\u0627\u0645 \u06c1\u06d2\u06d4 <code>app.listen()<\/code> \u0622\u062e\u0631\u06cc<\/h3>\n<p>\u067e\u06a9\u0627\u0631\u0646\u0627 \u0639\u0627\u0645 \u06c1\u06d2\u06d4 <code>app.listen()<\/code> \u06cc\u06c1 Express.js \u0627\u06cc\u067e\u0633 \u06a9\u06cc \u0622\u062e\u0631\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062a\u0645\u0627\u0645 \u0631\u0627\u0633\u062a\u06d2\u060c \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631\u060c \u0627\u0648\u0631 \u0627\u06cc\u0631\u0631 \u06c1\u06cc\u0646\u0688\u0644\u0631\u0632 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06d2 \u06af\u0627\u06d4<\/p>\n<h3 id=\"heading-you-can-set-the-port-number-using-environment-variables\">\u0622\u067e \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u0648\u0631\u0679 \u0646\u0645\u0628\u0631 \u0633\u06cc\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h3>\n<p>\u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631 \u0633\u06d2 \u067e\u0648\u0631\u0679 \u0646\u0645\u0628\u0631 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>port<\/code> \u0627\u0633 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u0627\u0633 \u0637\u0631\u062d \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-javascript\">const port = process.env.PORT || 3000;\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0679\u06a9\u0691\u0627 \u0646\u0648\u0688 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>PORT<\/code> \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u06cc \u0642\u062f\u0631\u06cc\u06ba \u06cc\u0627 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0627\u0642\u062f\u0627\u0631 <code>3000<\/code> \u0627\u06af\u0631 \u0633\u06cc\u0679 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u06cc\u0627 \u062e\u0627\u0644\u06cc \u06c1\u06d2\u06d4 \u0628\u0627\u0634 \u0646\u0645\u0627 \u0634\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0633\u06cc\u0679 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627: <code>PORT<\/code> \u06a9\u0648 <code>8000<\/code> \u0627\u0633 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-console\">PORT=8000 node server.js\n<\/code><\/pre>\n<h3 id=\"heading-common-expressjs-response-methods\">\u0639\u0627\u0645 Express.js \u062c\u0648\u0627\u0628\u06cc \u0637\u0631\u06cc\u0642\u06d2<\/h3>\n<p>Express.js \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0686\u06be \u0639\u0627\u0645 \u062c\u0648\u0627\u0628\u06cc \u0637\u0631\u06cc\u0642\u06d2 \u06cc\u06c1 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p><code>res.send()<\/code>: \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u0627\u06cc\u06a9 HTTP \u062c\u0648\u0627\u0628 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u06a9\u06d2 \u062f\u0644\u0627\u0626\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062f\u06c1 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0642\u0633\u0645\u0648\u06ba \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0645\u0646\u0627\u0633\u0628 \u062c\u0648\u0627\u0628\u06cc \u06c1\u06cc\u0688\u0631\u0632 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>res.json()<\/code>: \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 JSON \u062c\u0648\u0627\u0628 \u0628\u06be\u06cc\u062c\u06cc\u06ba \u0627\u0648\u0631 \u062c\u0648\u0627\u0628 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0633\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 <code>Content-Type<\/code> \u06c1\u06cc\u0688\u0631 <code>application\/json<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>res.redirect()<\/code>: \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u062e\u062a\u0644\u0641 URL \u067e\u0631 \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code>res.render()<\/code>: \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0627\u0646\u062c\u0646 \u0645\u06cc\u06ba \u0645\u0646\u0638\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba HTML \u0633\u0679\u0631\u0646\u06af \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code>res.status()<\/code>: \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u06d2 \u0686\u06a9\u0631 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u062c\u0648\u0627\u0628 \u06a9\u0627 HTTP \u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u0648\u0688 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u067e \u0645\u062e\u062a\u0644\u0641 \u062c\u0648\u0627\u0628\u06cc \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u0648 \u062c\u0648\u0691 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>res.status(404).send(\"404 Error: Page not found\")<\/code>. \u0688\u06cc\u0641\u0627\u0644\u0679 \u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u0648\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u0637\u0631\u06cc\u0642\u06d2 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 <code>200<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>res.end()<\/code>: \u062c\u0648\u0627\u0628 \u062e\u062a\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u062f\u0644\u06cc\u0644 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0627\u0644 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u06a9\u0648\u0626\u06cc \u0627\u0636\u0627\u0641\u06cc \u062c\u0648\u0627\u0628\u06cc \u0628\u0627\u0688\u06cc \u0688\u06cc\u0679\u0627 \u0646\u06c1\u06cc\u06ba \u0628\u06be\u06cc\u062c\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u062c\u0648\u0627\u0628 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0628\u06be\u06cc\u062c\u06d2 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0628\u06be\u06cc \u0642\u0628\u0648\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-expresss-response-methods-do-not-terminate-the-http-request-handlers-execution\">\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u06a9\u0627 \u062c\u0648\u0627\u0628\u06cc \u0637\u0631\u06cc\u0642\u06c1 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u062e\u062a\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u062c\u0648\u0627\u0628\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2: <code>res.send()<\/code> HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u06d2 \u0686\u06a9\u0631 \u06a9\u0648 \u0628\u0646\u062f \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0627 \u0639\u0645\u0644 \u062e\u062a\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0645\u062b\u0627\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/strong><\/p>\n<pre><code class=\"language-javascript\">app.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => {\n  \/\/ This sends a text response to the client and ends the request-response cycle, but does not end the route handler's execution\n  res.send(\"Hello, client!\");\n\n  \/\/ This logs the string to the console because the function is still running\n  console.log(\"Hello, devs!\");\n\n  \/\/ This will cause an error because the request-response cycle is closed, so you cannot send additional responses to the client during the callback's execution\n  res.send(\"Hello, client again!\");\n});\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>console.log()<\/code> \u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0645\u062b\u0627\u0644 \u0645\u06cc\u06ba \u0628\u06cc\u0627\u0646 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0627\u0628\u06be\u06cc \u0628\u06be\u06cc \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>res.send(\"Hello, client!\")<\/code> \u0644\u0627\u0626\u0646 \u0627\u0633 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u0627\u06cc\u06af\u0632\u06cc\u06a9\u06cc\u0648\u0634\u0646 \u0645\u06cc\u06ba \u0631\u06a9\u0627\u0648\u0679 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u062d\u0648\u0627\u0644\u06c1 <code>app.get(...)<\/code> \u0627\u0648\u067e\u0631 \u062f\u06cc\u06d2 \u06af\u0626\u06d2 \u06a9\u0648\u0688 \u06a9\u0648 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679 \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0648 Express.js \u0645\u06cc\u06ba \u0631\u0627\u0633\u062a\u06c1 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f \u0622\u0626\u06cc\u06d2 \u0627\u0628 \u0627\u0633 \u067e\u0631 \u0628\u062d\u062b \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-what-is-a-route-in-expressjs\">Express.js \u0645\u06cc\u06ba \u0631\u0627\u0633\u062a\u06c1 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>Express.js \u0645\u06cc\u06ba \u0631\u0648\u0679 HTTP \u0637\u0631\u06cc\u0642\u0648\u06ba\u060c URL \u067e\u0627\u062a\u06be\u0632\u060c \u0627\u0648\u0631 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u06cc\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0641\u0646\u06a9\u0634\u0646\u0632 \u06a9\u06cc \u0627\u06cc\u06a9 \u0632\u0646\u062c\u06cc\u0631 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0679\u067e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0627\u06cc\u06a9 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 HTTP \u0637\u0631\u06cc\u0642\u06c1 \u0627\u0648\u0631 URL \u067e\u0627\u062a\u06be \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 (\u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 = HTTP \u0637\u0631\u06cc\u0642\u06c1 + URL \u067e\u0627\u062a\u06be)<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u0679 \u0645\u06cc\u06ba HTTP \u0637\u0631\u06cc\u0642\u06d2\u060c \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u06a9\u06d2 \u0631\u0627\u0633\u062a\u06d2\u060c \u0627\u0648\u0631 \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u0688 \u0645\u0646\u0637\u0642 \u0634\u0627\u0645\u0644 \u06c1\u06d2 \u062c\u0648 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 (\u0631\u0627\u0633\u062a\u06c1 = \u0633\u0631\u0648\u0631 HTTP \u0637\u0631\u06cc\u0642\u06c1 + \u0633\u0631\u0648\u0631 URL \u067e\u0627\u062a\u06be + \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0641\u0646\u06a9\u0634\u0646)<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-syntax-of-a-route-in-express\">\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0645\u06cc\u06ba \u0631\u0648\u0679 \u0646\u062d\u0648<\/h3>\n<pre><code class=\"language-javascript\">app.METHOD(PATH, HANDLER);\n<\/code><\/pre>\n<ul>\n<li>\n<p><code>app<\/code>: \u0627\u06cc\u06a9 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u062b\u0627\u0644 \u062c\u0648 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 API \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0637\u0631\u06cc\u0642\u0648\u06ba \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631\u060c Node.js \u0645\u06cc\u06ba HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>METHOD<\/code>: \u06cc\u06c1 \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u06d2 \u06a9\u06cc\u0633 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2: <code>get<\/code>\u060c <code>post<\/code>\u06cc\u0627 <code>delete<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>PATH<\/code>:\u067e\u0627\u062a\u06be \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1 \u06c1\u06d2 \u062c\u0633 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06cc \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u062a\u0627\u0631 \u06cc\u0627 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u0627\u0638\u06c1\u0627\u0631 \u06c1\u0648\u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 5 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0646\u062d\u0648 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0679\u0631\u0646\u06af \u067e\u06cc\u0679\u0631\u0646 \u06a9\u0648 \u0628\u06be\u06cc \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>HANDLER<\/code>: \u0627\u06cc\u06a9 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 (\u06cc\u0627 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631) \u0641\u0646\u06a9\u0634\u0646 \u062c\u0648 \u06a9\u06c1 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 \u0627\u0648\u0631 \u0631\u0648\u0679 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u06d2 \u0645\u06cc\u0686 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u0639\u0645\u0644 \u0645\u06cc\u06ba \u0644\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0679\u067e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba <code>app.all()<\/code> \u0627\u06cc\u06a9 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0641\u0646\u06a9\u0634\u0646 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u062c\u0648 \u06a9\u0633\u06cc \u062e\u0627\u0635 \u0633\u0633\u0679\u0645 \u067e\u0631 \u062a\u0639\u0627\u0648\u0646 \u06cc\u0627\u0641\u062a\u06c1 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 <code>PATH<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>app.use()<\/code> \u0637\u0631\u06cc\u0642\u06d2 \u0622\u067e \u06a9\u0648 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0641\u0646\u06a9\u0634\u0646\u0632 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u06a9\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0622\u0646\u06d2 \u067e\u0631 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0637\u0631\u06cc\u0642\u0648\u06ba \u0627\u0648\u0631 \u0631\u0627\u0633\u062a\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0639\u0645\u0644 \u0645\u06cc\u06ba \u0644\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u062f\u0644\u06cc\u0644 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a <code>app.use()<\/code> \u0627\u0633 \u0631\u0627\u0633\u062a\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0630\u06cc\u0644\u06cc \u0631\u0627\u0633\u062a\u06d2 \u0633\u06d2 \u0645\u06cc\u0644 \u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <code>\/book<\/code> \u0645\u06cc\u0686\u0632 <code>\/book<\/code>\u060c <code>\/book\/dashboard<\/code>\u0627\u0648\u0631 <code>\/book\/dashboard\/author\/202605<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-middleware-vs-route-handler\">\u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0627\u0648\u0631 \u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631\u0632<\/h3>\n<p>\u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u0627\u06a9\u062b\u0631 &quot;\u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631&#8221; \u06a9\u06cc \u0627\u0635\u0637\u0644\u0627\u062d \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062d\u062a\u0645\u06cc \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0648\u0627\u0628 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0648\u0633\u0631\u06cc \u0637\u0631\u0641\u060c \u067e\u0631\u0627\u0646\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0627\u0641\u0639\u0627\u0644 \u06a9\u0648 &quot;\u0645\u0688\u0644 \u0648\u06cc\u0626\u0631&#8221; \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">app.METHOD(PATH, MIDDLEWARE1, MIDDLEWARE2, HANDLER);\n<\/code><\/pre>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0631\u0648\u0679 \u0633\u06d2 \u0648\u0627\u0628\u0633\u062a\u06c1 \u0641\u0646\u06a9\u0634\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u0641\u0631\u062f \u0646\u0627\u0645\u0648\u06ba \u06cc\u0627 \u0632\u0645\u0631\u0648\u06ba \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u06a9\u06d2 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u0633\u06d2\u060c \u06cc\u06c1 \u062a\u0645\u0627\u0645 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u06d2 \u0627\u0641\u0639\u0627\u0644 \u06c1\u06cc\u06ba\u06d4 <code>next()<\/code> \u0627\u06cc\u06a9 \u0633\u06d2 \u062f\u0648\u0633\u0631\u06d2 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u0627\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0688\u0648\u06cc\u0644\u067e\u0631 \u0627\u06a9\u062b\u0631 \u06a9\u0648\u0688 \u06a9\u06cc \u062a\u0646\u0638\u06cc\u0645\u060c \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u06c1\u0644\u06cc\u062a\u060c \u0627\u0648\u0631 \u0645\u0648\u0627\u0635\u0644\u0627\u062a \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0627\u0648\u0631 \u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631\u0632 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0641\u0631\u0642 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p>\u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0627\u0641\u0639\u0627\u0644 \u0627\u06a9\u062b\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>\/middlewares<\/code> \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0627\u06cc\u06a9 \u0627\u0641\u0627\u062f\u06cc\u062a \u06a9\u06d2 \u062c\u0632\u0648 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u0648 \u06a9\u0631\u0627\u0633 \u0679\u0627\u0633\u06a9 \u06cc\u0627 \u0627\u0633\u0679\u06cc\u062c\u0646\u06af \u06a9\u06d2 \u06a9\u0627\u0645 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u06cc \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u06a9\u06c1 \u062a\u0635\u062f\u06cc\u0642\u060c \u062a\u0648\u062b\u06cc\u0642\u060c \u0644\u0627\u06af\u0646\u06af\u060c \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u0644\u0648\u0688\u0646\u06af\u06d4 \u06cc\u06c1 \u0627\u0641\u0639\u0627\u0644 \u0627\u06a9\u062b\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06c1\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>next()<\/code> \u062f\u0631\u062c \u0630\u06cc\u0644 \u0641\u0646\u06a9\u0634\u0646 \u067e\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644 \u067e\u0627\u0633 \u06a9\u0631\u06cc\u06ba:<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631\u0632\u060c \u0628\u0639\u0636 \u0627\u0648\u0642\u0627\u062a \u06a9\u0646\u0679\u0631\u0648\u0644\u0631\u0632 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>\/controllers<\/code> \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0645\u0646\u0637\u0642 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2 \u062c\u0648 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0633\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0688\u06cc\u0641\u0627\u0644\u0679 \u062c\u0648\u0627\u0628\u0627\u062a \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>getUserProfile<\/code>\u060c <code>createBlogPost<\/code>\u06cc\u0627 <code>deleteAccount<\/code>. \u06cc\u06c1 \u0627\u0641\u0639\u0627\u0644 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u06a9\u06d2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u06d2 \u0686\u06a9\u0631 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>res.send()<\/code> \u06cc\u0627 <code>res.json()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-route-examples-in-expressjs\">Express.js \u0645\u06cc\u06ba \u0631\u0648\u0679 \u06a9\u06cc \u0645\u062b\u0627\u0644<\/h3>\n<p>Express.js \u0645\u06cc\u06ba \u0631\u0648\u0679\u0633 \u06a9\u06cc \u06a9\u0686\u06be \u0645\u062b\u0627\u0644\u06cc\u06ba \u06cc\u06c1 \u06c1\u06cc\u06ba:<\/p>\n<h4 id=\"heading-express-route-with-a-single-handler-function\">\u0648\u0627\u062d\u062f \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u06cc \u0641\u0639\u0627\u0644\u06cc\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679<\/h4>\n<pre><code class=\"language-javascript\">app.get(\"\/single\/handler\", (req, res) => {\n  res.send(\"Request handled with a single handler function!\");\n});\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0645\u062b\u0627\u0644 GET \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>GET \/single\/handler<\/code> \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba\u060c \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0641\u0646\u06a9\u0634\u0646 \u0627\u06cc\u06a9 \u0627\u0646 \u0644\u0627\u0626\u0646 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4 <code>controllers<\/code> \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u06cc\u06c1 \u0622\u067e \u06a9\u06d2 \u0631\u0648\u0679 \u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641\u0648\u06ba \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0622\u067e \u06a9\u06d2 \u06a9\u0648\u0688 \u06a9\u0648 \u062c\u0627\u0646\u0686\u0646\u0627 \u0627\u0648\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u0627 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0645\u062b\u0627\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/strong><\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0645\u062b\u0627\u0644 \u0645\u06cc\u06ba: <code>GET \/single\/handler<\/code> \u0645\u0627\u0688\u06cc\u0648\u0644\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0631\u0648\u0679\u0646\u06af \u06a9\u0648 \u0627\u0646 \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u0645\u0627\u0688\u06cc\u0648\u0644\u0632 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 (<code>controllers\/single-handler.js<\/code>)\u06d4 \u06cc\u06c1 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0645\u0646\u0637\u0642 \u0633\u06d2 \u0627\u0644\u06af \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u06a9\u0627 \u0631\u062f\u0639\u0645\u0644 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nimport * as controller from \".\/controllers\/single-handler.js\";\n\nconst app = express();\nconst port = 3000;\n\napp.get(\"\/single\/handler\", controller.singleHandler);\n\napp.listen(port, () => {\n  console.log(`Express server running at http:\/\/localhost:${port}`);\n});\n<\/code><\/pre>\n<p>\u0630\u06cc\u0644 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u0641\u0627\u0626\u0644 \u06a9\u06cc \u0627\u06cc\u06a9 \u0645\u062b\u0627\u0644 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0635\u0631\u0641 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u0641\u0627\u0626\u0644 \u06c1\u06d2: <code>singleHandler<\/code> \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0641\u0646\u06a9\u0634\u0646\u06d4<\/p>\n<p><code>controllers\/single-handler.js<\/code><\/p>\n<pre><code class=\"language-javascript\">function singleHandler(req, res) {\n  res.send(\"Request handled with a single handler function!\");\n}\n\nexport { singleHandler };\n<\/code><\/pre>\n<p><strong>\u0679\u067e:<\/strong> \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u0627\u06cc\u06a9 \u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06cc\u0627 \u06c1\u06cc\u0646\u0688\u0644\u0631\u0632 \u06a9\u0627 \u06af\u0631\u0648\u067e \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u067e\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0648\u0688 \u06a9\u06cc \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u0646\u06d2 \u0627\u0648\u0631 \u062e\u062f\u0634\u0627\u062a \u06a9\u06cc \u0648\u0627\u0636\u062d \u0639\u0644\u06cc\u062d\u062f\u06af\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631\u0632 \u06a9\u0648 \u0627\u06a9\u062b\u0631 \u0627\u0644\u06af \u0627\u0644\u06af \u0645\u0627\u0688\u06cc\u0648\u0644\u0632 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-express-route-with-multiple-middleware-functions\">\u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0627\u0641\u0639\u0627\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679<\/h4>\n<pre><code class=\"language-javascript\">app.get(\n  \"\/multiple\/middleware\",\n  (req, res, next) => {\n    console.log(\"First callback: passing control to the next middleware >\");\n    next();\n  },\n  (req, res, next) => {\n    console.log(\"Second callback: passing control to the next middleware >\");\n    next();\n  },\n  (req, res) => {\n    res.send(\"Request handled with multiple middleware functions!\");\n  },\n);\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0645\u062b\u0627\u0644 GET \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u0626\u06d2 \u0645\u062a\u0639\u062f\u062f \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0641\u0646\u06a9\u0634\u0646\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>\/multiple\/middleware<\/code> \u0633\u0691\u06a9<\/p>\n<h4 id=\"heading-express-route-with-an-array-of-middleware-functions\">\u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0627\u0641\u0639\u0627\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679<\/h4>\n<pre><code class=\"language-javascript\">const arrayOfCallbacks = [\n  function callback1(req, res, next) {\n    console.log(\"First callback: passing control to the next middleware >\");\n    next();\n  },\n  function callback2(req, res, next) {\n    console.log(\"Second callback: passing control to the next middleware >\");\n    next();\n  },\n  function callback3(req, res) {\n    res.send(\"Request handled with an array of middleware functions!\");\n  },\n];\n\napp.get(\"\/array\/middleware\", arrayOfCallbacks);\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0645\u062b\u0627\u0644 GET \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646\u0632 \u06a9\u06cc \u0627\u06cc\u06a9 \u0635\u0641 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>GET \/array\/middleware<\/code> \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1<\/p>\n<h4 id=\"heading-express-route-with-a-combination-of-an-array-of-middleware-functions-and-individual-callbacks\">\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679 \u0645\u062e\u062a\u0644\u0641 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0641\u0646\u06a9\u0634\u0646\u0632 \u0627\u0648\u0631 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u06a9\u0627\u0644 \u0628\u06cc\u06a9\u0633 \u06a9\u0648 \u06cc\u06a9\u062c\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h4>\n<pre><code class=\"language-javascript\">const arrayOfCallbacks = [\n  function callback1(req, res, next) {\n    console.log(\"First callback: passing control to the next middleware >\");\n    next();\n  },\n  function callback2(req, res, next) {\n    console.log(\"Second callback: passing control to the next middleware >\");\n    next();\n  },\n];\n\napp.get(\n  \"\/mix\/middleware\",\n  arrayOfCallbacks,\n  (req, res, next) => {\n    console.log(\"Third callback: passing control to the next middleware >\");\n    next();\n  },\n  (req, res, next) => {\n    console.log(\"Fourth callback: passing control to the next middleware >\");\n    next();\n  },\n  (req, res) => {\n    res.send(\n      \"Request handled with a combination of an array of middleware functions and independent callback arguments!\",\n    );\n  },\n);\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0645\u062b\u0627\u0644 \u0627\u06cc\u06a9 GET \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0644 \u0628\u06cc\u06a9\u0633 \u0627\u0648\u0631 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0641\u0646\u06a9\u0634\u0646 \u062f\u0644\u0627\u0626\u0644 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>\/mix\/middleware<\/code> \u0633\u0691\u06a9<\/p>\n<h3 id=\"heading-important-things-to-know-about-the-next-parameter\">\u062c\u0627\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06c1\u0645 \u0686\u06cc\u0632\u06cc\u06ba: <code>next<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631<\/h3>\n<ul>\n<li>\n<p><code>next()<\/code>    \u0627\u0633\u0679\u06cc\u06a9 \u0645\u06cc\u06ba \u0627\u06af\u0644\u06d2 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0641\u0646\u06a9\u0634\u0646 \u067e\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644 \u067e\u0627\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>next(\"route\")<\/code>    \u0645\u0648\u062c\u0648\u062f\u06c1 \u0631\u0648\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0642\u06cc\u06c1 \u06c1\u06cc\u0646\u0688\u0644\u0631\u0632 \u06a9\u0648 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u0645\u0627\u062b\u0644 \u0631\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u062a\u0644\u0627\u0634 \u062c\u0627\u0631\u06cc \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0645\u0627\u062b\u0644\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u0627\u0648\u0631 \u0631\u0627\u0633\u062a\u06d2 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u0645\u062f\u0646\u0638\u0631 \u0631\u06a9\u06be\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0631\u0641 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0627\u0641\u0639\u0627\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0645\u0648\u062b\u0631 \u06c1\u06d2 \u062c\u0633 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u06cc \u06af\u0626\u06cc \u06c1\u06d2: <code>app.METHOD()<\/code> \u06cc\u0627 <code>router.METHOD()<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>next(new Error(value))<\/code>    \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u06cc\u0631\u0631 \u067e\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644 \u067e\u0627\u0633 \u06a9\u0631\u06cc\u06ba:<\/p>\n<\/li>\n<li>\n<p>\u0627\u06af\u0631 \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u0686\u0644 \u0631\u06c1\u0627 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u06d2 \u0686\u06a9\u0631 \u06a9\u0648 \u062e\u062a\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>next<\/code> \u0622\u067e \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06a9\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u0645\u06cc\u06ba \u06a9\u0627\u0644 \u06a9\u0631\u06a9\u06d2 \u0627\u06af\u0644\u06d2 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u0635\u0648\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627 \u0631\u06c1\u06d2 \u06af\u06cc\u06d4<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-categories-of-middleware-in-expressjs\">Express.js \u0645\u06cc\u06ba \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06cc\u0679\u06cc\u06af\u0631\u06cc<\/h3>\n<p>\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u067e\u0627\u0646\u0686 \u0627\u06c1\u0645 \u0632\u0645\u0631\u0648\u06ba \u0645\u06cc\u06ba \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u0633\u0637\u062d<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u0679\u0631 \u06a9\u06cc \u0633\u0637\u062d<\/p>\n<\/li>\n<li>\n<p>\u06c1\u06cc\u0646\u0688\u0644\u0646\u06af \u0645\u06cc\u06ba \u062e\u0631\u0627\u0628\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0633\u062c\u0627\u0648\u0679<\/p>\n<\/li>\n<li>\n<p>\u062a\u06cc\u0633\u0631\u06cc \u067e\u0627\u0631\u0679\u06cc<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u0632\u0645\u0631\u06d2 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06c1\u0627\u06ba \u0646\u0635\u0628 \u06c1\u06d2\u060c \u06cc\u06c1 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u06cc\u0627 \u06a9\u0633 \u0630\u0631\u06cc\u0639\u06c1 \u0633\u06d2\u06d4<\/p>\n<h4 id=\"heading-application-level-middleware\">\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u06cc\u0648\u0644 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631<\/h4>\n<p>\u0627\u0633 \u0642\u0633\u0645 \u06a9\u0627 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u062b\u0627\u0644\u0648\u06ba \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 (<code>app<\/code>)\u06d4<\/p>\n<p><strong>\u06c1\u0627\u06ba:<\/strong><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nconst app = express();\n\napp.get(\"\/profile\", (req, res, next) => {\n  console.log(\"Hi, there!\");\n  next();\n});\n<\/code><\/pre>\n<h4 id=\"heading-router-level-middleware\">\u0631\u0627\u0624\u0679\u0631 \u0644\u06cc\u0648\u0644 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631<\/h4>\n<p>\u06cc\u06c1 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0627\u0624\u0679\u0631 \u0645\u062b\u0627\u0644\u0648\u06ba \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2 (<code>router<\/code>)\u06d4 \u06cc\u06c1 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u06cc\u0648\u0644 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0631\u0648\u0679\u0631 \u067e\u0631 \u0646\u0635\u0628 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u06c1\u0627\u06ba:<\/strong><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nconst router = express.Router();\n\nrouter.get(\"\/profile\", (req, res, next) => {\n  console.log(\"Hi, there!\");\n  next();\n});\n<\/code><\/pre>\n<h4 id=\"heading-error-handling-middleware\">\u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u06d2 \u0645\u06cc\u06ba \u062e\u0631\u0627\u0628\u06cc\u06d4<\/h4>\n<p>\u06cc\u06c1 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u063a\u0644\u0637\u06cc\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u0686\u0627\u0631 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06d2 \u062f\u0633\u062a\u062e\u0637 \u0633\u06d2 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nconst app = express();\n\napp.use((err, req, res, next) => {\n  console.error(err);\n  res.status(500).send(\"Error 500: Encountered an unexpected error\");\n});\n<\/code><\/pre>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong><\/p>\n<ul>\n<li>\n<p>\u062a\u0645\u0627\u0645 \u0686\u0627\u0631 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u0627 \u0645\u0648\u062c\u0648\u062f \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u060c \u0686\u0627\u06c1\u06d2 \u06a9\u0686\u06be \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1 \u06c1\u0648\u06ba\u06d4 \u0628\u0635\u0648\u0631\u062a \u062f\u06cc\u06af\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u0627\u06cc\u0631\u0631 \u06c1\u06cc\u0646\u0688\u0644\u0646\u06af \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062a\u0633\u0644\u06cc\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u06d2 \u06af\u0627\u06d4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u067e\u0646\u06d2 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u0627\u0645 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u067e\u0627\u062a\u06be \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0628\u0639\u062f \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06cc \u063a\u0644\u0637\u06cc \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u063a\u0644\u0637\u06cc\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u06d2\u06d4 \u06cc\u06c1 \u0627\u0646\u062a\u0638\u0627\u0645 \u06c1\u0645\u06cc\u06ba \u067e\u0686\u06be\u0644\u06d2 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0641\u0646\u06a9\u0634\u0646\u0632 \u0633\u06d2 \u067e\u06be\u06cc\u0644\u0627\u0626\u06cc \u06af\u0626\u06cc \u063a\u0644\u0637\u06cc\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h4 id=\"heading-built-in-middleware\">\u0628\u0644\u0679 \u0627\u0646 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631<\/h4>\n<p>\u06cc\u06c1 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0636\u0627\u0641\u06cc \u067e\u06cc\u06a9\u062c\u0632 \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u06c1\u0627\u06ba:<\/strong><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\n\nexpress.static(\"public\");\nexpress.json();\nexpress.urlencoded();\n<\/code><\/pre>\n<h4 id=\"heading-third-party-middleware\">\u062a\u06be\u0631\u0688 \u067e\u0627\u0631\u0679\u06cc \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631<\/h4>\n<p>\u06cc\u06c1 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0641\u0646\u06a9\u0634\u0646\u0632 \u0648\u0633\u06cc\u0639 \u062a\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u06a9\u0645\u06cc\u0648\u0646\u0679\u06cc \u06a9\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u0627\u0648\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06a9\u0631\u062f\u06c1 \u0628\u06cc\u0631\u0648\u0646\u06cc \u067e\u06cc\u06a9\u06cc\u062c\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u06cc\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0645\u062b\u0627\u0644\u0648\u06ba \u0645\u06cc\u06ba \u06a9\u0648\u0631\u060c \u0645\u0648\u0631\u06af\u0646 \u0627\u0648\u0631 \u06c1\u06cc\u0644\u0645\u0679 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-typescript\">import express from \"express\";\nimport cors from \"cors\";\n\nconst app = express();\napp.use(cors());\n<\/code><\/pre>\n<h4 id=\"heading-note-middleware-categories-in-express-are-not-mutually-exclusive\">\u0646\u0648\u0679: \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0645\u06cc\u06ba \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0632\u0645\u0631\u06d2 \u0628\u0627\u06c1\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062e\u0635\u0648\u0635\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/h4>\n<p><strong>\u0645\u062b\u0627\u0644 1:<\/strong><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\n\nconst app = express();\napp.use(express.json());\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>express.json()<\/code> \u0627\u0648\u067e\u0631 \u06a9\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u0645\u06cc\u06ba \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062f\u0648\u0646\u0648\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p>\u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u0633\u0637\u062d \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06c1\u06d2\u06d4 <code>app<\/code> \u0645\u062b\u0627\u0644<\/p>\n<\/li>\n<li>\n<p>\u06cc\u06c1 \u0627\u0633 \u0644\u06cc\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0645\u062b\u0627\u0644 2:<\/strong><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nimport cors from \"cors\";\n\nconst router = express.Router();\nrouter.use(cors());\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>cors()<\/code> \u0627\u0648\u067e\u0631 \u06a9\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u0645\u06cc\u06ba \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062f\u0648\u0646\u0648\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p>\u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0631\u0648\u0679\u0631 \u06a9\u06cc \u0633\u0637\u062d \u067e\u0631 \u062c\u0691\u0627 \u06c1\u0648\u0627 \u06c1\u06d2\u06d4 <code>router<\/code> \u0645\u062b\u0627\u0644<\/p>\n<\/li>\n<li>\n<p>\u0641\u0631\u06cc\u0642 \u062b\u0627\u0644\u062b (\u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0628\u06cc\u0631\u0648\u0646\u06cc \u067e\u06cc\u06a9\u06cc\u062c \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627)<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u06a9\u06cc\u0627 \u06c1\u06d2\u060c \u0622\u067e \u067e\u0648\u0686\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u061f <code>express.Router()<\/code> \u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0645\u062b\u0627\u0644 \u0645\u06cc\u06ba \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f \u0622\u0626\u06cc\u06d2 \u0627\u0633 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-what-is-the-expressrouter-method\">\u06cc\u06c1 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f <code>express.Router()<\/code> \u0637\u0631\u06cc\u0642\u06c1\u061f<\/h2>\n<p>\u06a9\u06c1 <code>express.Router()<\/code> \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u0627\u06cc\u06a9 \u0631\u0648\u0679\u0631 \u0622\u0628\u062c\u06cc\u06a9\u0679 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0631\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642 \u06af\u0631\u0648\u067e \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u0627\u0633 \u0631\u0627\u0624\u0679\u0631 \u06a9\u0648 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0633\u06d2 \u06cc\u0627 \u06a9\u0633\u06cc \u062f\u0648\u0633\u0631\u06d2 \u0631\u0627\u0624\u0679\u0631 \u0633\u06d2 \u06cc\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u06a9\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>app.use()<\/code> \u06cc\u0627 <code>router.use()<\/code>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/10\/1791048120_298_Nodejs-\u0627\u0648\u0631-Expressjs-\u06c1\u06cc\u0646\u0688-\u0628\u06a9-\u0628\u0631\u0627\u0626\u06d2-\u0627\u0628\u062a\u062f\u0627\u0626\u06cc\u06c1-\u0633\u0631\u0648\u0631\u0632\u060c-\u0631\u0648\u0679\u0633\u060c.jpg\" alt=\"\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0627\u0624\u0679\u0631 \u0627\u06cc\u06a9 \u0645\u0646\u06cc \u0627\u06cc\u067e \u06a9\u06cc\u0648\u06ba \u06c1\u06d2\u061f\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0622\u067e \u0627\u0648\u067e\u0631 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0645\u06cc\u06ba \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0631\u0627\u0624\u0679\u0631\u0632 \u06a9\u0648 \u0627\u06a9\u062b\u0631 \u0645\u0646\u06cc \u0627\u06cc\u067e\u0633 \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0648\u06c1 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0627\u0648\u0631 \u0631\u0648\u0679\u0646\u06af \u0633\u0633\u0679\u0645 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u062c\u06af\u06c1 \u067e\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0631\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0645\u0642\u0627\u0645\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0645\u0627\u0624\u0646\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06d2 \u06a9\u0631 \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0645\u0646\u0638\u0645 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u06c1\u0645 \u06a9\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648 \u0631\u0648\u0679\u0633 \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06cc \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u0642\u0633\u0627\u0645 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><strong>\u0627\u0634\u0627\u0631\u06cc\u06c1:<\/strong> \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0631\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u062a\u0627\u0628\u06cc\u06ba:<\/strong> \u06a9\u062a\u0627\u0628 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0631\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0648\u06cc\u0688\u06cc\u0648:<\/strong> \u0648\u06cc\u0688\u06cc\u0648 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0631\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0633 \u0635\u0648\u0631\u062a \u062d\u0627\u0644 \u0645\u06cc\u06ba \u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>express.Router()<\/code> \u0645\u062a\u0639\u0644\u0642\u06c1 \u0631\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u06af\u0631\u0648\u067e \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0637\u0631\u06cc\u0642\u06c1\u06d4 \u0627\u0633 \u0633\u06d2 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0622\u0626\u0679\u0645\u0632 \u06a9\u0648 \u0645\u0646\u0638\u0645 \u0631\u06a9\u06be\u0646\u06d2 \u0627\u0648\u0631 \u06c1\u0631 \u06af\u0631\u0648\u067e \u06a9\u0648 \u0645\u0646\u0638\u0645 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u0645\u0644\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u0627\u06af\u0631\u0686\u06c1 \u0622\u067e \u062a\u0645\u0627\u0645 \u0631\u0627\u0624\u0679\u0631\u0632 \u0627\u0648\u0631 \u0627\u06cc\u067e \u06a9\u06cc \u0645\u062b\u0627\u0644\u06cc\u06ba \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0628\u06c1\u062a\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0648\u0631 \u062f\u06cc\u06a9\u06be \u0628\u06be\u0627\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u0627\u0624\u0679\u0631\u0632 \u06a9\u0648 \u0627\u0644\u06af \u0641\u0627\u0626\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0645 \u06c1\u0631 \u0631\u0627\u0633\u062a\u06d2 \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0632\u0645\u0631\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0644\u06af \u0627\u0644\u06af \u0641\u0627\u0626\u0644\u06cc\u06ba \u0628\u0646\u0627 \u06a9\u0631 \u0627\u0633 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<h3 id=\"heading-create-a-directory-for-the-routers\">\u0631\u0648\u0679\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>routes<\/code> \u0627\u067e\u0646\u06cc \u062a\u0645\u0627\u0645 \u0627\u06cc\u067e\u0633 \u06a9\u06d2 \u0631\u0627\u0624\u0679\u0631\u0632 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0646\u06c1\u06cc\u06ba \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0631\u0648\u0679 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">mkdir routes\n<\/code><\/pre>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u0622\u067e \u0627\u0633 \u0641\u0648\u0644\u0688\u0631 \u06a9\u0648 \u062c\u0648 \u0686\u0627\u06c1\u06cc\u06ba \u0646\u0627\u0645 \u062f\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 <code>routes<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0646\u0627\u0645 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u06c1\u06d2 \u062c\u0648 \u0627\u06cc\u067e \u06a9\u06d2 \u0631\u0627\u0633\u062a\u06d2 (URL \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679) \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>express.Router()<\/code> \u0627\u06cc\u06a9 \u0637\u0631\u06cc\u0642\u06c1 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u0679\u0648\u0644 \u06c1\u06d2 \u062c\u0648 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u0648 \u0645\u0646\u0638\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-create-the-route-files\">\u0631\u0648\u0679 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0631\u0648\u0679 \u0641\u0627\u0626\u0644 \u0627\u06cc\u06a9 \u0645\u0627\u0688\u06cc\u0648\u0644 \u06c1\u06d2 \u062c\u0648 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0631\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0627\u0624\u0679\u0631 \u0627\u0634\u06cc\u0627\u0621 \u06a9\u0648 \u0628\u0631\u0622\u0645\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u0641\u0627\u0626\u0644 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0633\u06cc \u0648\u0633\u0627\u0626\u0644 \u06cc\u0627 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u062c\u06cc\u0633\u06d2 \u0635\u0627\u0631\u0641\u060c \u06a9\u062a\u0627\u0628\u060c \u06cc\u0627 \u0633\u0631\u0679\u06cc\u0641\u06a9\u06cc\u0679\u06d4<\/p>\n<p>\u0631\u0648\u0679 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 <code>routes<\/code> \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc<\/p>\n<pre><code class=\"language-console\">touch routes\/index.js routes\/books.js routes\/videos.js\n<\/code><\/pre>\n<h3 id=\"heading-create-a-mini-app-for-the-book-related-routes-and-middleware\">\u06a9\u062a\u0627\u0628 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642 \u0631\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u06cc \u0627\u06cc\u067e\u0633 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0627\u0641\u062a\u062a\u0627\u062d\u06cc <code>books.js<\/code> \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>express.Router()<\/code> \u0627\u06cc\u06a9 \u0645\u062b\u0627\u0644 \u062c\u0648 \u06a9\u0633\u06cc \u06a9\u062a\u0627\u0628 \u0633\u06d2 \u0648\u0627\u0628\u0633\u062a\u06c1 \u062a\u0645\u0627\u0645 \u0631\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u06af\u0631\u0648\u067e \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><code>routes\/books.js<\/code><\/p>\n<pre><code class=\"language-javascript\">\/\/ Import the Router function from Express\nimport { Router } from \"express\";\n\n\/\/ Create a new Express router instance\nconst bookRouter = Router();\n\n\/\/ Define middleware specific to this router instance\nbookRouter.use((req, res, next) => {\n  console.log(\"Book route accessed at: \", Date.now());\n  next();\n});\n\n\/\/ Define routes specific to this router instance:\n\nbookRouter.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => {\n  res.send(\"\");\n});\n\nbookRouter.get(\"\/:id\", (req, res) => {\n  res.type(\"text\/plain\").send(`Details for book ${req.params.id}`);\n});\n\nbookRouter.get(\"\/:id\/draft\", (req, res) => {\n  \/\/ Escape the ID before inserting it into HTML text\n  const bookId = req.params.id\n    .replaceAll(\"&\", \"&\")\n    .replaceAll(\"<\", \"<\")\n    .replaceAll(\">\", \">\");\n  res.send(``);\n});\n\nexport { bookRouter };\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u06a9\u0648\u0688 \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0646\u0633\u0644 <code>bookRouter<\/code> \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 APIs \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0645\u062b\u0627\u0644\u06cc\u06ba: <code>.get()<\/code>\u060c <code>.post()<\/code>\u060c <code>.use()<\/code>\u0627\u0648\u0631 <code>.route()<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 <code>router.use()<\/code> \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0645\u0627\u0624\u0646\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 <code>bookRouter<\/code> \u0645\u062b\u0627\u0644<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 <code>router.get()<\/code> \u06cc\u06c1 \u0628\u062a\u0627\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u06c1 \u0633\u0631\u0648\u0631 HTTP GET \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 <code>res.send()<\/code> \u0648\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u062c\u0648 HTTP \u062c\u0648\u0627\u0628 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062f\u06c1 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0645\u0646\u0627\u0633\u0628 \u06c1\u06cc\u0688\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>\/:id<\/code> \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u062c\u0648\u0627\u0628 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0648 \u0633\u0627\u062f\u06c1 \u0645\u062a\u0646 \u067e\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 <code>\/:id\/draft<\/code> \u06c1\u06cc\u0646\u0688\u0644\u0631 ID \u0633\u06d2 \u0628\u0686 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 HTML \u0645\u06cc\u06ba \u062f\u0627\u062e\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u062a\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>export<\/code> \u06cc\u06c1 \u0628\u06cc\u0627\u0646 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u0648 \u062c\u0628 \u0628\u06be\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648 \u0631\u0627\u0624\u0679\u0631 \u0622\u0628\u062c\u06cc\u06a9\u0679 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-time-to-practice-with-routers\">\u0631\u0627\u0624\u0679\u0631 \u0644\u06cc\u0628 \u06a9\u0627 \u0648\u0642\u062a<\/h3>\n<p>\u0627\u0628 \u0648\u0642\u062a \u0622\u06af\u06cc\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0627\u0624\u0679\u0631 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u062c\u0648 \u06a9\u0686\u06be \u0633\u06cc\u06a9\u06be\u0627 \u06c1\u06d2 \u0627\u0633\u06d2 \u062c\u0627\u0646\u0686\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0645\u0634\u0642 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0627\u0646\u0688\u06cc\u06a9\u0633\u060c \u0648\u06cc\u0688\u06cc\u0648 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0631\u0627\u0633\u062a\u06d2\u060c \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u0646\u06cc \u0627\u06cc\u067e \u0628\u0646\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4 \u06a9\u0648 \u0628\u0631\u0622\u0645\u062f \u06a9\u0631\u06cc\u06ba\u06d4 <code>indexRouter<\/code> \u0633\u06d2 <code>routes\/index.js<\/code> \u0627\u0648\u0631 <code>videoRouter<\/code> \u0633\u06d2 <code>routes\/videos.js<\/code> \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u06cc\u06c1 \u0627\u06af\u0644\u06d2 \u062d\u0635\u06d2 \u0645\u06cc\u06ba \u062f\u0631\u0622\u0645\u062f\u0627\u062a \u0633\u06d2 \u0645\u06cc\u0644 \u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0644\u0645\u062d\u06c1 \u0646\u06a9\u0627\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633\u06d2 \u0627\u067e\u0646\u06d2 \u0644\u06cc\u06d2 \u0622\u0632\u0645\u0627\u0626\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u0645\u062f\u062f \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u060c \u062a\u0648 \u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u06ba: <code>books.js<\/code> \u0641\u0627\u0626\u0644 \u0645\u0634\u0642 \u0622\u067e \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0637\u0648\u0631 \u067e\u0631 \u0633\u0645\u062c\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u0648\u0631\u0632\u0634 \u0645\u06a9\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-update-the-main-express-application\">\u0645\u0642\u0627\u0645\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u067e\u0646\u0627 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4 <code>server.js<\/code> \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0627\u067e\u0646\u06d2 \u0631\u0627\u0624\u0679\u0631 \u06a9\u0648 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0633\u06d2 \u062c\u0648\u0691\u06cc\u06ba\u06d4<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Express module\nimport express from \"express\";\n\n\/\/ Import the routers from their separate files\nimport { indexRouter } from \".\/routes\/index.js\";\nimport { bookRouter } from \".\/routes\/books.js\";\nimport { videoRouter } from \".\/routes\/videos.js\";\n\n\/\/ Create a new Express application instance\nconst app = express();\n\n\/\/ Specify the host and port to receive requests\nconst host = \"localhost\";\nconst port = 3000;\n\n\/\/ Mount the routers to specific paths:\n\n\/\/ Mount indexRouter at \/\napp.use(\"https:\/\/www.freecodecamp.org\/\", indexRouter);\n\n\/\/ Mount bookRouter at \/books and its subpaths\napp.use(\"\/books\", bookRouter);\n\n\/\/ Mount videoRouter at \/videos and its subpaths\napp.use(\"\/videos\", videoRouter);\n\n\/\/ Run the server on the specified port and host\napp.listen(port, host, () => {\n  console.log(`Server running live at http:\/\/${host}:\n${port}!`);\n});\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u06a9\u0648\u0688 \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 APIs \u062c\u06cc\u0633\u06d2 \u0631\u0627\u0624\u0679\u0631\u0632 \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u062b\u0627\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u062c\u0648 Node.js \u0645\u06cc\u06ba HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 <code>app.use()<\/code> \u0627\u067e\u0646\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0645\u0646\u06cc \u0627\u06cc\u067e \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 <code>app.listen()<\/code> \u0648\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u062c\u0648 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u067e\u0648\u0631\u0679 \u067e\u0631 Node.js HTTP \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u0648 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u06a9\u06c1 <code>app.use()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u0645\u06cc\u06ba \u0631\u0627\u0633\u062a\u06c1 \u0631\u0648\u0679\u0631 \u06a9\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0631\u0627\u0633\u062a\u06d2 \u06cc\u0627 \u0645\u0627\u0624\u0646\u0679 \u067e\u0627\u062a\u06be \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0631\u0648\u0679\u0631 \u067e\u0631 \u0645\u062a\u0639\u06cc\u0646 \u0631\u0627\u0633\u062a\u06d2 \u0627\u0633 \u0645\u0627\u0624\u0646\u0679 \u067e\u0627\u062a\u06be \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u06c1\u06cc\u06ba\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631:<\/p>\n<ul>\n<li>\n<p><code>bookRouter<\/code>\u0627\u06cc\u0633 <code>\/<\/code> \u0631\u0648\u0679 \u0645\u0644\u0627\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba\u06d4 <code>\/books<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>bookRouter<\/code>\u0627\u06cc\u0633 <code>\/:id<\/code> \u0631\u0648\u0679 \u0645\u0644\u0627\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba\u06d4 <code>\/books\/:id<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>bookRouter<\/code>\u0627\u06cc\u0633 <code>\/:id\/draft<\/code> \u0631\u0648\u0679 \u0645\u0644\u0627\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba\u06d4 <code>\/books\/:id\/draft<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-run-your-expressjs-application\">Express.js \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u0627\u067e\u0646\u0627 \u0631\u0627\u0624\u0679\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 Node.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0631\u0648\u0631 \u0641\u0627\u0626\u0644 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">node --watch server.js\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e \u06a9\u0648 \u0645\u062e\u0635\u0648\u0635 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u067e\u0631 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u0686\u0644\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <code>http:\/\/localhost:3000\/books<\/code>.<\/p>\n<p><strong>\u0679\u067e:<\/strong> \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u06cc\u06ba: <code>Ctrl + C<\/code> \u0648\u0646\u0688\u0648\u0632\u060c \u0645\u06cc\u06a9 \u0627\u0648 \u0627\u06cc\u0633 \u06cc\u0627 \u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631\u06d4<\/p>\n<h3 id=\"heading-important-things-to-know-about-express-routers\">\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0627\u0624\u0679\u0631 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06c1\u0645 \u0686\u06cc\u0632\u06cc\u06ba<\/h3>\n<p>\u0627\u067e\u0646\u0627 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0627\u0624\u0679\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u06a9\u0686\u06be \u0627\u06c1\u0645 \u0686\u06cc\u0632\u06cc\u06ba \u06cc\u0627\u062f \u0631\u06a9\u06be\u06cc\u06ba:<\/p>\n<h4 id=\"heading-routers-do-not-inherit-parent-route-parameters-by-default\">\u0631\u0627\u0624\u0679\u0631\u0632 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u067e\u06cc\u0631\u0646\u0679 \u0631\u0648\u0679 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u06d2 \u0648\u0627\u0631\u062b \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h4>\n<p>\u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679\u0631 \u06a9\u06d2 \u0645\u0627\u0624\u0646\u0679 \u067e\u0627\u062a\u06be \u0633\u06d2 \u0627\u0633 \u0631\u0648\u0679\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0631\u0627\u0633\u062a\u0648\u06ba \u062a\u06a9 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u06c1\u0627\u06ba:<\/strong><\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Express module\nimport express from \"express\";\n\n\/\/ Create a new Express application instance\nconst app = express();\n\n\/\/ Create a new Express router instance\nconst bookRouter = express.Router();\n\n\/\/ Define a sub-route\nbookRouter.get(\"\/books\/:bookId\", (req, res) => {\n  const topic = req.params.topic; \/\/ undefined by default\n  const bookId = req.params.bookId;\n  res.json({ topic, bookId });\n});\n\n\/\/ Define a parent route\napp.use(\"\/codesweetly\/:topic\", bookRouter);\n\n\/\/ Run the server on the specified port and host\nconst server = app.listen(3000, \"127.0.0.1\", () => {\n  const { address, port } = server.address();\n  console.log(`Server running live at http:\/\/${address}:\n${port}!`);\n});\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u06cc \u0645\u062b\u0627\u0644 \u0645\u06cc\u06ba\u060c \u0627\u06af\u0631 \u0622\u067e \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u062f\u0631\u062c \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-txt\">http:\/\/127.0.0.1:3000\/codesweetly\/CSS\/books\/91827\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>req.params.topic<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06c1\u06cc\u06ba\u06d4 <code>undefined<\/code> \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0686\u0627\u0626\u0644\u0688 \u067e\u0627\u062a\u06be\u0632 \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0627\u067e\u0646\u06d2 \u067e\u06cc\u0631\u0646\u0679 \u067e\u0627\u062a\u06be \u06a9\u06d2 \u067e\u0627\u062a\u06be \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u062a\u0648 \u0633\u0631\u0648\u0631 <code>{\"bookId\":\"91827\"}<\/code> \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0627 \u062c\u0648\u0627\u0628\u06d4<\/p>\n<p>\u0686\u0627\u0626\u0644\u0688 \u067e\u0627\u062a\u06be \u06a9\u0648 \u067e\u06cc\u0631\u0646\u0679 \u067e\u0627\u062a\u06be \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u06cc\u0679 \u06a9\u0631\u06cc\u06ba: <code>mergeParams<\/code> \u06a9\u0648 <code>true<\/code> \u0631\u0648\u0679\u0631 \u0628\u0646\u0627\u062a\u06d2 \u0648\u0642\u062a\u06d4<\/p>\n<p><strong>\u06c1\u0627\u06ba:<\/strong><\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Express module\nimport express from \"express\";\n\n\/\/ Create a new Express application instance\nconst app = express();\n\n\/\/ Create a new Express router instance\nconst bookRouter = express.Router({ mergeParams: true });\n\n\/\/ Define a sub-route\nbookRouter.get(\"\/books\/:bookId\", (req, res) => {\n  const topic = req.params.topic; \/\/ \"CSS\" for the URL below\n  const bookId = req.params.bookId;\n  res.json({ topic, bookId });\n});\n\n\/\/ Define a parent route\napp.use(\"\/codesweetly\/:topic\", bookRouter);\n\n\/\/ Run the server on the specified port and host\nconst server = app.listen(3000, \"127.0.0.1\", () => {\n  const { address, port } = server.address();\n  console.log(`Server running live at http:\/\/${address}:\n${port}!`);\n});\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u06cc \u0645\u062b\u0627\u0644 \u0645\u06cc\u06ba\u060c \u0627\u06af\u0631 \u0622\u067e \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u062f\u0631\u062c \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-txt\">http:\/\/127.0.0.1:3000\/codesweetly\/CSS\/books\/91827\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>req.params.topic<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06c1\u06cc\u06ba\u06d4 <code>CSS<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>mergeParams: true<\/code> \u0686\u0627\u0626\u0644\u0688 \u067e\u0627\u062a\u06be \u06a9\u0648 \u067e\u06cc\u0631\u0646\u0679 \u067e\u0627\u062a\u06be \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0648 \u0633\u0631\u0648\u0631 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2: <code>{\"topic\":\"CSS\",\"bookId\":\"91827\"}<\/code> \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0627 \u062c\u0648\u0627\u0628\u06d4<\/p>\n<p><strong>\u0679\u067e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0644\u0627\u0626\u0646 <code>const { address, port } = server.address()<\/code> \u0622\u0628\u062c\u06cc\u06a9\u0679 \u0688\u06cc\u0633\u0679\u0631\u06a9\u0686\u0631\u0646\u06af \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 <code>address<\/code> \u0627\u0648\u0631 <code>port<\/code> \u06a9\u06cc \u0642\u062f\u0631 <code>server.address()<\/code> \u0627\u0639\u062a\u0631\u0627\u0636<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>app.listen()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u0688\u06cc\u0641\u0627\u0644\u0679 Node.js \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>http.Server<\/code> \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0633\u0631\u0648\u0631 APIs \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2: <code>.address()<\/code>\u060c <code>.on()<\/code>\u0627\u0648\u0631 <code>.maxHeadersCount<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>127.0.0.1<\/code>    IPv4 \u0644\u0648\u067e \u0628\u06cc\u06a9 \u0627\u06cc\u0688\u0631\u06cc\u0633\u06d4 <code>localhost<\/code> \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062d\u0644 \u06c1\u0648 \u062c\u0627\u0626\u06d2\u06d4 <code>127.0.0.1<\/code> \u06cc\u0627 IPv6 \u0644\u0648\u067e \u0628\u06cc\u06a9 \u0627\u06cc\u0688\u0631\u06cc\u0633 <code>::1<\/code>. \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>http:\/\/127.0.0.1:3000<\/code> \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0646 \u0645\u062b\u0627\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0633\u0631\u0648\u0631 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u067e\u0646\u06d2 IPv4 \u0627\u06cc\u0688\u0631\u06cc\u0633 \u06a9\u0648 \u0633\u0646\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h4 id=\"heading-routers-can-be-mounted-on-other-routers\">\u0627\u06cc\u06a9 \u0631\u0627\u0624\u0679\u0631 \u06a9\u0648 \u062f\u0648\u0633\u0631\u06d2 \u0631\u0627\u0624\u0679\u0631 \u067e\u0631 \u0644\u06af\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/h4>\n<p>\u0622\u067e \u0627\u06cc\u06a9 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0627\u0624\u0679\u0631 \u06a9\u0648 \u062f\u0648\u0633\u0631\u06d2 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0627\u0624\u0679\u0631 \u0633\u06d2 \u062c\u0648\u0691 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u06c1\u0627\u06ba:<\/strong><\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Express module\nimport express from \"express\";\n\n\/\/ Create a new Express application instance\nconst app = express();\n\n\/\/ Create two Express router instances\nconst htmlRouter = express.Router();\nconst bookRouter = express.Router();\n\n\/\/ Define a sub-route\nbookRouter.get(\"\/:bookId\", (req, res) => {\n  res\n    .type(\"text\/plain\")\n    .send(`Details for the HTML book with ID ${req.params.bookId}`);\n});\n\n\/\/ Mount bookRouter on htmlRouter's \/books path\nhtmlRouter.use(\"\/books\", bookRouter);\n\n\/\/ Mount htmlRouter at \/html and its subpaths\napp.use(\"\/html\", htmlRouter);\n\n\/\/ Run the server on the specified port and host\nconst server = app.listen(3000, \"127.0.0.1\", () => {\n  const { address, port } = server.address();\n  console.log(`Server running live at http:\/\/${address}:\n${port}!`);\n});\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>bookRouter<\/code>\u0627\u06cc\u0633 <code>GET \/:bookId<\/code> \u0631\u0648\u0679 \u0645\u0644\u0627\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba\u06d4 <code>GET \/html\/books\/:bookId<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633 \u0645\u062b\u0627\u0644 \u0645\u06cc\u06ba \u0628\u06a9 \u0631\u0648\u0679\u0631 \u0627\u0633 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06c1\u06d2: <code>htmlRouter<\/code>.<\/p>\n<p>\u0644\u06c1\u0630\u0627\u060c \u0627\u0648\u067e\u0631 \u06a9\u06cc \u0645\u062b\u0627\u0644 \u0645\u06cc\u06ba\u060c \u0627\u06af\u0631 \u0622\u067e \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u062f\u0631\u062c \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-txt\">http:\/\/127.0.0.1:3000\/html\/books\/91827\n<\/code><\/pre>\n<p>\u0633\u0631\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u062c\u0648\u0627\u0628 &quot;\u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u06a9\u062a\u0627\u0628 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644\u0627\u062a ID 91827 \u06a9\u06d2 \u0633\u0627\u062a\u06be&#8221; \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0628 \u062c\u0628 \u06a9\u06c1 \u0622\u067e \u062c\u0627\u0646\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0631\u0648\u0679\u0631 \u06a9\u06cc\u0627 \u06c1\u06d2\u060c \u0622\u0626\u06cc\u06d2 \u0627\u0633 \u067e\u0631 \u0628\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0648\u06cc\u0628 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0645\u0648\u0627\u062f \u0627\u0648\u0631 \u0633\u0627\u062e\u062a \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0633 \u0637\u0631\u062d \u0622\u0631\u0627\u0621 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0633\u06d2 \u0622\u067e \u06a9\u06cc Express.js \u0627\u06cc\u067e \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-what-is-a-view-in-expressjs\">Express.js \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u062e\u06cc\u0627\u0644\u0627\u062a \u06c1\u06cc\u06ba\u061f<\/h2>\n<p>\u0627\u06cc\u06a9 \u0645\u0646\u0638\u0631 \u0627\u06cc\u06a9 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06cc\u0627 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06c1\u06d2 \u062c\u0648 \u0648\u06cc\u0628 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0645\u0648\u0627\u062f \u0627\u0648\u0631 \u0633\u0627\u062e\u062a \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 \u0622\u067e \u06a9\u06cc Express.js \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u062c\u0627\u0645\u062f HTML \u0641\u0627\u0626\u0644 \u06cc\u0627 \u0627\u06cc\u06a9 \u0645\u062a\u062d\u0631\u06a9 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0627\u0646\u062c\u0646 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0631\u0646 \u0679\u0627\u0626\u0645 \u067e\u0631 HTML \u0645\u06cc\u06ba \u067e\u06cc\u0634 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u06af\u0627\u0626\u06cc\u0688 \u062f\u0648 \u0642\u0633\u0645 \u06a9\u06d2 \u062e\u06cc\u0627\u0644\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u062c\u0627\u0645\u062f \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631<\/p>\n<\/li>\n<li>\n<p>\u0645\u062a\u062d\u0631\u06a9 \u0646\u0638\u0627\u0631\u06c1<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-what-are-static-views-in-expressjs\">Express.js \u0645\u06cc\u06ba \u062c\u0627\u0645\u062f \u0646\u0638\u0627\u0631\u06d2 \u06a9\u06cc\u0627 \u06c1\u06cc\u06ba\u061f<\/h3>\n<p>\u062c\u0627\u0645\u062f \u0646\u0638\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u062d\u062a\u0645\u06cc HTML \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0686\u0627\u0631 \u062c\u0627\u0645\u062f \u0646\u0638\u0627\u0631\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 Express.js \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-create-static-views\">\u0627\u06cc\u06a9 \u062c\u0627\u0645\u062f \u0645\u0646\u0638\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h4>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>index.html<\/code>\u060c <code>about.html<\/code>\u060c <code>contact.html<\/code>\u0627\u0648\u0631 <code>404.html<\/code> \u06cc\u06c1 \u0641\u0627\u0626\u0644 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06cc \u0631\u0648\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0648\u0627\u0642\u0639 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-console\">touch index.html about.html contact.html 404.html\n<\/code><\/pre>\n<p>\u06c1\u0631 \u0645\u0646\u0638\u0631 \u06a9\u0648 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 HTML \u0645\u0648\u0627\u062f \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<h5 id=\"heading-indexhtml-homepage\">index.html (\u06c1\u0648\u0645 \u200b\u200b\u067e\u06cc\u062c)<\/h5>\n<pre><code class=\"language-html\">\n\n  \n    <meta charset=\"UTF-8\"\/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n    <title>Static Views in Express.js | CodeSweetly Tutorial<\/title>\n  \n  \n    \n    <p>Site's pages:<\/p>\n    \n  \n\n<\/code><\/pre>\n<h5 id=\"heading-abouthtml-about-page\">about.html (\u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba)<\/h5>\n<pre><code class=\"language-html\">\n\n  \n    <meta charset=\"UTF-8\"\/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n    <title>About Us | Static Views in Express.js<\/title>\n  \n  \n    \n    <p>\n      Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero soluta\n      voluptas reprehenderit minus veniam! Corrupti a esse quidem nostrum harum,\n      explicabo tempore tempora aut, sint et voluptatem magni ea vel?\n    <\/p>\n    \n  \n\n<\/code><\/pre>\n<h5 id=\"heading-contacthtml-contact-page\">contact.html (\u0631\u0627\u0628\u0637\u06c1 \u06a9\u0627 \u0635\u0641\u062d\u06c1)<\/h5>\n<pre><code class=\"language-html\">\n\n  \n    <meta charset=\"UTF-8\"\/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n    <title>Contact | Static Views in Express.js<\/title>\n  \n  \n    \n    \n    \n  \n\n<\/code><\/pre>\n<h5 id=\"heading-404html-error-page\">404.html (\u062e\u0631\u0627\u0628\u06cc \u0635\u0641\u062d\u06c1)<\/h5>\n<pre><code class=\"language-html\">\n\n  \n    <meta charset=\"UTF-8\"\/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n    <title>404 - Page not found | Static Views in Express.js<\/title>\n  \n  \n    \n    <p>Sorry, we couldn't find that page<\/p>\n    \n  \n\n<\/code><\/pre>\n<p>\u0627\u06af\u0644\u0627\u060c \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-configure-the-projects-web-server-to-serve-static-views\">\u062c\u0627\u0645\u062f \u0646\u0638\u0627\u0631\u06d2 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/h4>\n<p>\u0645\u0646\u0635\u0648\u0628\u06d2 \u06a9\u06d2 <code>server.js<\/code> \u0627\u06cc\u06a9 \u0645\u0627\u0688\u06cc\u0648\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0645\u0646\u0627\u0633\u0628 \u062c\u0627\u0645\u062f HTML \u0645\u0646\u0638\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the required modules\nimport express from \"express\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n\/\/ Create a new Express application instance\nconst app = express();\n\n\/\/ Specify the hostname and port to receive requests\nconst host = \"localhost\";\nconst port = 3000;\n\n\/\/ Get the directory name of the current file's path\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n\/\/ Use the index.html static view as a response to 'GET \/' requests\napp.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => res.sendFile(join(__dirname, \"index.html\")));\n\n\/\/ Use the about.html static view as a response to 'GET \/about' requests\napp.get(\"https:\/\/www.freecodecamp.org\/about\", (req, res) => {\n  res.sendFile(join(__dirname, \"about.html\"));\n});\n\n\/\/ Use the contact.html static view as a response to 'GET \/contact' requests\napp.get(\"\/contact\", (req, res) => {\n  res.sendFile(join(__dirname, \"contact.html\"));\n});\n\n\/\/ Use the 404.html static view as a response to unmatched requests\napp.use((req, res) => {\n  res.status(404).sendFile(join(__dirname, \"404.html\"));\n});\n\n\/\/ Run the server on the specified port and hostname\napp.listen(port, host, () => {\n  console.log(`Server running live at http:\/\/${host}:\n${port}`);\n});\n<\/code><\/pre>\n<p>\u0627\u06c1\u0645 \u06a9\u0627\u0645 \u062c\u0648 \u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0648\u06c1 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 APIs \u062c\u06cc\u0633\u06d2 \u0631\u0627\u0624\u0679\u0631\u0632 \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u062b\u0627\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u062c\u0648 Node.js \u0645\u06cc\u06ba HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 \u0641\u0627\u0626\u0644 \u067e\u0627\u062a\u06be \u06a9\u0627 \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0646\u0627\u0645 \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p><code>dirname()<\/code>    \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u06a9\u0627 \u0646\u0627\u0645 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>fileURLToPath()<\/code>    URL \u06a9\u0648 \u0627\u06cc\u06a9 \u062f\u0631\u0633\u062a \u067e\u0627\u062a\u06be \u0633\u0679\u0631\u0646\u06af \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>import.meta.url<\/code>    \u0645\u0648\u062c\u0648\u062f\u06c1 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0645\u0637\u0644\u0642 URL \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u06a9\u0644\u0627\u0626\u0646\u0679\u0633 \u0633\u06d2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba \u0648\u0635\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0631\u0627\u0633\u062a\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p><code>app<\/code>    \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u0645\u062b\u0627\u0644\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>app.get()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0633\u0631\u0648\u0631 \u06a9\u0633 \u0637\u0631\u062d \u0645\u062e\u0635\u0648\u0635 \u0631\u0627\u0633\u062a\u06d2 (\u0637\u0631\u06cc\u0642\u06c1 \u06a9\u06cc \u067e\u06c1\u0644\u06cc \u062f\u0644\u06cc\u0644) \u06a9\u06d2 \u0644\u06cc\u06d2 HTTP GET \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>res.sendFile()<\/code> \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u0633\u0631\u0648\u0631 \u0633\u06d2 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u0641\u0627\u0626\u0644 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>join()<\/code>    \u0645\u0648\u062c\u0648\u062f\u06c1 \u0622\u067e\u0631\u06cc\u0679\u0646\u06af \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u067e\u0627\u062a\u06be \u0633\u06cc\u067e\u0631\u06cc\u0679\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0645\u062a\u0639\u062f\u062f \u067e\u0627\u062a\u06be \u0633\u06cc\u06af\u0645\u0646\u0679\u0633 \u06a9\u0648 \u0627\u06cc\u06a9 \u0648\u0627\u062d\u062f\u060c \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0627\u06c1\u0644 \u067e\u0627\u062a\u06be \u0633\u0679\u0631\u0646\u06af \u0645\u06cc\u06ba \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>app.use()<\/code> \u0637\u0631\u06cc\u0642\u06d2 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0641\u0646\u06a9\u0634\u0646 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0637\u0631\u06cc\u0642\u0648\u06ba \u0627\u0648\u0631 \u0631\u0648\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u062f\u0644\u06cc\u0644 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a <code>app.use()<\/code> \u0645\u0645\u0627\u062b\u0644 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06d2 \u0633\u0627\u0628\u0642\u06c1 \u200b\u200b\u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <code>\/book<\/code> \u0645\u06cc\u0686\u0632 <code>\/book<\/code>\u060c <code>\/book\/dashboard<\/code>\u0627\u0648\u0631 <code>\/book\/dashboard\/author\/202605<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>res.status(404)<\/code>    HTTP \u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u0648\u0688 \u06a9\u0648 \u0627\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 404 \u067e\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u062c\u0648\u0627\u0628 \u0645\u0648\u0635\u0648\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u0633 \u062d\u062a\u0645\u06cc \u06c1\u06cc\u0646\u0688\u0644\u0631 \u062a\u06a9 \u067e\u06c1\u0646\u0686 \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>app.listen()<\/code> \u0648\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u062c\u0648 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u067e\u0648\u0631\u0679 \u067e\u0631 Node.js HTTP \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u0648 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h4 id=\"heading-run-your-expressjs-application\">Express.js \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/h4>\n<p>\u0633\u0631\u0648\u0631 \u0642\u0627\u0626\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u0633\u06d2 Node.js \u0633\u06d2 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">node --watch server.js\n<\/code><\/pre>\n<p>\u067e\u06be\u0631\u060c \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e\u0633 \u06a9\u0648 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u0686\u0644\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4 <code>http:\/\/localhost:3000<\/code>.<\/p>\n<p><strong>\u0679\u067e:<\/strong> \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u06cc\u06ba: <code>Ctrl + C<\/code> \u0648\u0646\u0688\u0648\u0632\u060c \u0645\u06cc\u06a9 \u0627\u0648 \u0627\u06cc\u0633 \u06cc\u0627 \u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631\u06d4<\/p>\n<p>\u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u0645\u0646\u0638\u0645 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062a\u0645\u0627\u0645 \u062c\u0627\u0645\u062f \u0646\u0638\u0627\u0631\u06d2 \u06c1\u0679\u0627 \u062f\u06cc\u06ba\u06d4 <code>public<\/code> \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u06cc\u06c1 \u0639\u0627\u0645 \u0631\u0648\u0627\u062c \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-create-a-directory-for-static-views\">\u062c\u0627\u0645\u062f \u0646\u0638\u0627\u0631\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h4>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>public<\/code> \u062a\u0645\u0627\u0645 \u0633\u0679\u06cc\u0679\u06a9 \u0648\u06cc\u0648\u0632 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0646\u06c1\u06cc\u06ba \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06cc \u0631\u0648\u0679 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">mkdir public\n<\/code><\/pre>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u0622\u067e \u0627\u0633 \u0641\u0648\u0644\u0688\u0631 \u06a9\u0648 \u062c\u0648 \u0686\u0627\u06c1\u06cc\u06ba \u0646\u0627\u0645 \u062f\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 <code>public<\/code> \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u06c1 \u0641\u0627\u0626\u0644 (HTML\u060c CSS\u060c \u06a9\u0644\u0627\u0626\u0646\u0679 \u0633\u0627\u0626\u06cc\u0688 JavaScript\u060c \u062a\u0635\u0627\u0648\u06cc\u0631) \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u0631\u0627\u062f\u06c1 \u0631\u06a9\u06be\u062a\u06cc \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0633\u06cc \u0641\u0648\u0644\u0688\u0631 \u06a9\u06d2 \u0645\u0648\u0627\u062f \u062a\u06a9 \u0627\u0633 \u06a9\u06d2 \u0646\u0627\u0645 \u0633\u06d2 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06d2\u06d4 \u06cc\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u062d\u0633\u0627\u0633 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0634\u0627\u0645\u0644 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-move-all-static-views-into-the-public-folder\">\u062a\u0645\u0627\u0645 \u062c\u0627\u0645\u062f \u0646\u0638\u0627\u0631\u06d2\u06d4 <code>public<\/code> \u0641\u0648\u0644\u0688\u0631<\/h4>\n<pre><code class=\"language-console\">mv index.html about.html contact.html 404.html public\/\n<\/code><\/pre>\n<h4 id=\"heading-update-the-server-to-retrieve-static-views-from-the-public-folder\">\u0633\u0631\u0648\u0631 \u0633\u06d2 \u062c\u0627\u0645\u062f \u0646\u0638\u0627\u0631\u06d2 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 <code>public<\/code> \u0641\u0648\u0644\u0688\u0631<\/h4>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst app = express();\nconst host = \"localhost\";\nconst port = 3000;\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n\/\/ Serve static assets (HTML, CSS, images) from the 'public' folder\napp.use(express.static(join(__dirname, \"public\")));\n\n\/\/ Use the index.html static view as a response to 'GET \/' requests\napp.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => {\n  res.sendFile(join(__dirname, \"\/public\/index.html\"));\n});\n\n\/\/ Use the about.html static view as a response to 'GET \/about' requests\napp.get(\"https:\/\/www.freecodecamp.org\/about\", (req, res) => {\n  res.sendFile(join(__dirname, \"\/public\/about.html\"));\n});\n\n\/\/ Use the contact.html static view as a response to 'GET \/contact' requests\napp.get(\"\/contact\", (req, res) => {\n  res.sendFile(join(__dirname, \"\/public\/contact.html\"));\n});\n\n\/\/ Use the 404.html static view as a response to unmatched requests\napp.use((req, res) => {\n  res.status(404).sendFile(join(__dirname, \"\/public\/404.html\"));\n});\n\n\/\/ Run the server on the specified port and hostname:\napp.listen(port, host, () => {\n  console.log(`Server running live at http:\/\/${host}:\n${port}`);\n});\n<\/code><\/pre>\n<p><strong>\u0645\u06cc\u0645\u0648<\/strong> \u06a9\u06c1 <code>app.use(express.static(join(__dirname, 'public')))<\/code> \u0644\u0627\u0626\u0646 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0633\u06d2 \u06a9\u06c1\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u067e\u06c1\u0644\u06d2 \u062c\u0627\u0645\u062f \u0627\u062b\u0627\u062b\u06c1 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0639\u0648\u0627\u0645\u06cc \u0641\u0648\u0644\u0688\u0631 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 \u062c\u0628 \u0627\u0633\u06d2 \u0648\u06c1\u0627\u06ba \u06a9\u0648\u0626\u06cc \u0641\u0627\u0626\u0644 \u0645\u0644\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u0627\u0633\u06d2 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u06d2 \u0686\u06a9\u0631 \u06a9\u0648 \u0631\u0648\u06a9 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u06c1\u0627\u06ba:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0627\u06af\u0631 \u0635\u0627\u0631\u0641 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>localhost:3000\/about.html<\/code>\u060c <code>express.static<\/code> \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba\u06d4 <code>public<\/code> \u0641\u0648\u0644\u0688\u0631 <code>about.html<\/code> \u0641\u0627\u0626\u0644 \u062c\u0628 \u0645\u0644 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0631\u0648\u0679 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u062c\u0627\u0645\u062f \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u0633 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06af\u0631 \u0635\u0627\u0631\u0641 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>localhost:3000\/about<\/code>\u060c <code>express.static<\/code> \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba\u06d4 <code>public<\/code> \u0641\u0648\u0644\u0688\u0631 <code>about<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u06c1\u06d2 (\u06a9\u0648\u0626\u06cc \u062a\u0648\u0633\u06cc\u0639 \u0646\u06c1\u06cc\u06ba)\u06d4 \u062c\u0628 \u06cc\u06c1 \u067e\u0627\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 <code>about<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0628\u06be\u06cc\u062c \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 <code>\/about\/<\/code>\u0627\u0633\u06d2 \u06a9\u06c1\u0627\u06ba \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 <code>index.html<\/code> \u0628\u0646\u06cc\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631\u06d4 \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u0628\u0646\u0627\u0626\u06cc \u06af\u0626\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u0622\u067e \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>about<\/code> \u0641\u0627\u0626\u0644 \u06cc\u0627 <code>about<\/code> \u0686\u0648\u0646\u06a9\u06c1 \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u060c \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>GET \/about<\/code> \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0631\u0627\u0633\u062a\u06c1\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0628 \u0622\u0626\u06cc\u06d2 \u0645\u062a\u062d\u0631\u06a9 \u062e\u06cc\u0627\u0644\u0627\u062a \u067e\u0631 \u0628\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-what-are-dynamic-views-in-expressjs\">Express.js \u0645\u06cc\u06ba \u0645\u062a\u062d\u0631\u06a9 \u0646\u0638\u0627\u0631\u06d2 \u06a9\u06cc\u0627 \u06c1\u06cc\u06ba\u061f<\/h3>\n<p>\u0688\u0627\u0626\u0646\u0627\u0645\u06a9 \u0648\u06cc\u0648\u0632 \u0645\u06cc\u06ba \u067e\u0644\u06cc\u0633 \u06c1\u0648\u0644\u0688\u0631\u0632 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0627\u0646\u062c\u0646\u060c \u062c\u06cc\u0633\u06d2 EJS\u060c \u0631\u0646 \u0679\u0627\u0626\u0645 \u06a9\u06d2 \u0648\u0642\u062a \u0688\u06cc\u0679\u0627 \u0633\u06d2 \u0628\u062f\u0644 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>Express.js \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0627\u0646\u062c\u0646\u0648\u06ba \u062c\u06cc\u0633\u06d2 EJS\u060c Pug\u060c \u0627\u0648\u0631 Handlebars \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0628\u0627\u062a \u067e\u0631 \u0628\u062d\u062b \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1 \u0645\u062a\u062d\u0631\u06a9 \u062e\u06cc\u0627\u0644\u0627\u062a \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0622\u0626\u06cc\u06d2 EJS \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0645\u062b\u0627\u0644 \u0644\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-what-is-ejs\">EJS \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h4>\n<p>\u0627\u06cc\u0645\u0628\u06cc\u0688\u0688 JavaScript \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 (EJS) \u0627\u06cc\u06a9 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0644\u06cc\u0646\u06af\u0648\u06cc\u062c \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u06a9\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0679\u06cc\u06af\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 HTML \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0645\u06cc\u06ba JavaScript \u06a9\u0648\u0688 \u062f\u0627\u062e\u0644 \u06a9\u0631\u06a9\u06d2 \u0645\u062a\u062d\u0631\u06a9 HTML \u0648\u06cc\u0648\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u0633\u0631\u0648\u0631 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c EJS \u0627\u0646\u062c\u0646 \u0627\u06cc\u0645\u0628\u06cc\u0688\u0688 JavaScript \u06a9\u0648 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062d\u062a\u0645\u06cc HTML \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u0628\u06be\u06cc\u062c\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648\u0688 \u067e\u0631 \u063a\u0648\u0631 \u06a9\u0631\u06cc\u06ba: \u0627\u06af\u0644\u0627\u060c EJS \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>npm install ejs<\/code> \u0627\u0633 \u0645\u062b\u0627\u0644 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2:<\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Express and EJS modules\nimport express from \"express\";\nimport ejs from \"ejs\";\n\n\/\/ Create a new Express application instance\nconst app = express();\n\n\/\/ Specify the host and port to receive requests\nconst host = \"localhost\";\nconst port = 8000;\n\n\/\/ Define the data object\nconst friendsArray = [\"Sarah\", \"Abraham\", \"Mary\"];\nconst replacementObject = { friends: friendsArray };\n\n\/\/ Use backticks to define a template string with embedded JavaScript\nconst templateString = `\n  \n  <p>Welcome to CodeSweetly.<\/p>\n`;\n\n\/\/ Compile and render the template string to HTML (the rendered view)\nconst html = ejs.render(templateString, replacementObject);\n\n\/\/ Use the dynamic view as a response to 'GET \/' requests\napp.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => res.send(html));\n\n\/\/ Run the server on the specified port and hostname\napp.listen(port, host, () => {\n  console.log(`Server running live at http:\/\/${host}:\n${port}!`);\n});\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0679\u06a9\u0691\u0627 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u0645\u0646\u0638\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u0628\u06be\u06cc\u062c\u06d2 \u062c\u0628 \u0635\u0627\u0631\u0641 \u0627\u0633 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u06d2\u06d4 <code>\/<\/code> \u0633\u0691\u06a9<\/p>\n<p>\u0631\u0646 \u0679\u0627\u0626\u0645 \u067e\u0631\u060c EJS \u062a\u0634\u062e\u06cc\u0635 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>friends.join(\", \")<\/code> \u0645\u0646\u0638\u0648\u0631 \u0634\u062f\u06c1 \u0635\u0641 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 <code>friends<\/code> \u0646\u062a\u06cc\u062c\u06c1 \u062f\u0627\u062e\u0644 \u06a9\u0631\u06cc\u06ba\u060c <code>Sarah, Abraham, Mary<\/code>HTML \u0645\u06cc\u06ba\u06d4 \u06cc\u06c1\u0627\u06ba \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0627\u0633 \u0648\u0642\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062c\u0628 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0627\u06cc\u06a9 \u06c1\u06cc \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 HTML \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-what-are-ejs-template-tags\">EJS \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0679\u06cc\u06af\u0632 \u06a9\u06cc\u0627 \u06c1\u06cc\u06ba\u061f<\/h4>\n<p>EJS \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0679\u06cc\u06af\u0632 \u062e\u0627\u0635 \u0679\u06cc\u06af \u06c1\u06cc\u06ba \u062c\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0644\u06a9\u06be\u06d2 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba: <code><% ... %><\/code> \u0646\u062d\u0648 \u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 EJS \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0645\u06cc\u06ba JavaScript \u06a9\u0648\u0688 \u0627\u0648\u0631 \u0627\u0642\u062f\u0627\u0631 \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 EJS \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0644\u06cc\u0679 \u0679\u06cc\u06af\u0632 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0622\u0624\u0679 \u067e\u0679 \u0679\u06cc\u06af\u0632 \u0648\u06cc\u0644\u06cc\u0648 \u062f\u0627\u062e\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062a\u0628\u0635\u0631\u06c1 \u0679\u06cc\u06af\u0632 \u06a9\u0648 \u0646\u0638\u0631 \u0627\u0646\u062f\u0627\u0632 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <code><%= %><\/code> \u0646\u06cc\u0686\u06d2 \u062f\u06cc\u06d2 \u06af\u0626\u06d2 \u0679\u06cc\u06af\u0632 \u0622\u067e \u06a9\u0648 JavaScript \u062f\u0627\u062e\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>friend<\/code> \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0645\u06cc\u06ba \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ejs\">\n<\/code><\/pre>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u0622\u0624\u0679 \u067e\u0679 \u0679\u06cc\u06af\u0632 \u0627\u0633 \u0637\u0631\u062d: <code><%= %><\/code> \u0627\u06cc\u06a9 \u062f\u0631\u0633\u062a JavaScript \u0627\u0638\u06c1\u0627\u0631 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0644\u06cc\u0679 \u0679\u06cc\u06af\u0632 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u06d2 \u0628\u06cc\u0627\u0646\u0627\u062a \u0627\u0648\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0644\u0648 \u0688\u06be\u0627\u0646\u0686\u06d2 \u06a9\u06d2 \u062d\u0635\u06d2 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062a\u0628\u0635\u0631\u06c1 \u0679\u06cc\u06af\u0632 \u0645\u06cc\u06ba \u062a\u0628\u0635\u0631\u06d2 \u06c1\u0648\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u06c1\u0627\u06ba:<\/strong><\/p>\n<ul>\n<li>\n<p><code><%= \n\n<p>I love CodeSweetly<\/p>\n<p> %><\/code>    \u0627\u06cc\u06a9 \u062e\u0631\u0627\u0628\u06cc \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code><\/p>\n<p>I love CodeSweetly<\/p>\n<p><\/code> \u06cc\u06c1 HTML \u06c1\u06d2\u060c \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code><%= \"\n\n<p>I love CodeSweetly<\/p>\n<p>\" %><\/code>    \u06cc\u06c1 \u062f\u0631\u0633\u062a \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>\"<\/p>\n<p>I love CodeSweetly<\/p>\n<p>\"<\/code> JavaScript \u0633\u0679\u0631\u0646\u06af \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h4 id=\"heading-types-of-ejs-template-tags\">EJS \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0679\u06cc\u06af \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645<\/h4>\n<p>\u0646\u0648 EJS \u0679\u06cc\u06af \u0641\u0627\u0631\u0645\u06cc\u0679\u0633 \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2:<\/p>\n<p><strong>\u0679\u067e:<\/strong> \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648\u0688 \u06a9\u0648 EJS \u0679\u06cc\u06af\u0632 \u0645\u06cc\u06ba \u0644\u067e\u06cc\u0679\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0627\u0633\u06d2 \u0622\u0633 \u067e\u0627\u0633 \u06a9\u06d2 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0645\u0648\u0627\u062f \u0633\u06d2 \u0645\u0645\u062a\u0627\u0632 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u06d4 \u0627\u06cc\u06a9 \u0648\u0627\u062d\u062f \u0679\u06cc\u06af \u062c\u0648\u0691\u0627 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u06cc \u0645\u062a\u0639\u062f\u062f \u0644\u0627\u0626\u0646\u0648\u06ba \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648\u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h5 id=\"heading-closing-tag-gt\">\u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0679\u06cc\u06af (<code>%><\/code>)<\/h5>\n<p>EJS \u0679\u06cc\u06af \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06a9\u0644\u0648\u0632\u0646\u06af \u0679\u06cc\u06af \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u0627 \u0628\u0630\u0627\u062a \u062e\u0648\u062f \u06a9\u0648\u0626\u06cc \u062e\u0627\u0635 \u0631\u0648\u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h5 id=\"heading-scriptlet-tag-lt\">\u0627\u0633\u06a9\u0631\u067e\u0679 \u0679\u06cc\u06af (<code><%<\/code>)<\/h5>\n<p>\u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648\u0688 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0679\u06cc\u06af \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0628\u063a\u06cc\u0631 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u06c1 HTML \u0645\u06cc\u06ba \u06a9\u0686\u06be \u0628\u06be\u06cc \u0622\u0624\u0679 \u067e\u0679 \u06a9\u06cc\u06d2\u06d4 \u06cc\u06c1 \u0679\u06cc\u06af \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0644\u0648\u0632 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 <code>if<\/code>\u060c <code>for<\/code>\u0627\u0648\u0631 <code>forEach<\/code> \u0645\u0646\u0637\u0642<\/p>\n<pre><code class=\"language-ejs\"><ul>\n  <% friends.forEach(function () { %>\n  <li>My friend<\/li>\n  <% }) %>\n<\/ul>\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u0633 \u0637\u0631\u062d \u0644\u06af\u062a\u0627 \u06c1\u06d2: <code><% %><\/code> JavaScript \u06a9\u0648\u0688 \u06a9\u0648 EJS \u06a9\u0648 \u0628\u062a\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0644\u0648 \u0633\u0679\u06cc\u0679\u0645\u0646\u0679\u0633 \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u0646\u0634\u0627\u0646 \u0632\u062f \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0635\u0631\u0641 \u0645\u0646\u0637\u0642 \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 HTML \u0645\u06cc\u06ba \u067e\u06cc\u0634 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<h5 id=\"heading-escaped-output-tag-lt\">\u0641\u0631\u0627\u0631 \u0634\u062f\u06c1 \u0622\u0624\u0679 \u067e\u0679 \u0679\u06cc\u06af\u0632 (<code><%=<\/code>)<\/h5>\n<p>escaped output tags \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 JavaScript \u0627\u0638\u06c1\u0627\u0631 \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 HTML \u062d\u0631\u0648\u0641 \u0633\u06d2 \u0628\u0686\u0646\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0646\u062a\u06cc\u062c\u06d2 \u06a9\u0648 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u06c1 HTML \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0646\u06a9\u0627\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0679\u06cc\u06af \u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u0627\u0646\u062c\u06cc\u06a9\u0634\u0646 \u06a9\u0648 \u0631\u0648\u06a9\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-ejs\"><%= 100 + 200 %>\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u0633 \u0637\u0631\u062d \u0644\u06af\u062a\u0627 \u06c1\u06d2: <code><%= %><\/code> \u06c1\u0645 EJS \u06a9\u0648 \u06a9\u0648\u0688 \u06a9\u06cc \u0642\u062f\u0631\u0648\u06ba \u06a9\u0648 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 HTML \u0645\u06cc\u06ba \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u06cc\u0627\u0636\u06cc \u06a9\u06d2 \u062a\u0627\u062b\u0631\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u0627\u06af\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 HTML \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u0627\u0633\u0679\u0631\u0646\u06af \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c <code><%= %><\/code> \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0645\u062a\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 HTML \u0646\u062d\u0648 \u0633\u06d2 \u0628\u0686 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <code><%= \"\" %><\/code> \u067e\u06cc\u0634 \u06a9\u0631\u06d2 \u06af\u0627 <code\/> as text, not an actual <code\/> element.<\/p>\n<h5 id=\"heading-unescaped-output-tag-lt\">Unescaped output tag (<code><%-<\/code>)<\/h5>\n<p>\u0627\u0646 \u0633\u06a9\u06cc\u067e\u0688 \u0679\u06cc\u06af\u0632 \u0622\u067e \u06a9\u0648 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u06d2 \u062a\u0627\u062b\u0631\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0627\u0648\u0631 HTML \u062d\u0631\u0648\u0641 \u06a9\u0648 \u0686\u06be\u0648\u0691\u06d2 \u0628\u063a\u06cc\u0631 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 HTML \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ejs\"><%- \"\" %>\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u0633 \u0637\u0631\u062d \u0644\u06af\u062a\u0627 \u06c1\u06d2: <code><%- %><\/code> \u0627\u06cc\u06a9 \u062a\u0627\u0631 \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u062c\u0633 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2: <code\/> element so the browser renders it as HTML. Use unescaped output only for trusted HTML.<\/p>\n<h5 id=\"heading-literal-opening-tag-lt\">Literal opening tag (<code><%%<\/code>)<\/h5>\n<p>\u0644\u0679\u0631\u06cc\u0644 \u0679\u06cc\u06af\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0644\u0679\u0631\u06cc\u0644\u0632 \u067e\u0631\u0646\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 <code><%<\/code> EJS \u0679\u06cc\u06af\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0646 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u0622\u0624\u0679 \u067e\u0679 \u0645\u06cc\u06ba EJS \u0646\u062d\u0648 \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u06cc\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-ejs\"><%% \"<p><strong>Name:<\/strong> <em>Oluwatobi<\/em><\/p>\" %>\n<\/code><\/pre>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0679\u06a9\u0691\u0627 \u0627\u06cc\u06a9 \u0644\u0641\u0638\u06cc \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code><%<\/code> \u0628\u0627\u0642\u06cc \u0645\u062a\u0646 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062c\u0627\u0646\u0686\u06d2 \u0628\u063a\u06cc\u0631 \u062c\u0627\u0631\u06cc \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 HTML \u0630\u0631\u06cc\u0639\u06c1 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-plaintext\"><% \"\n<p><strong>Name:<\/strong> <em>Oluwatobi<\/em><\/p>\n\" %>\n<\/code><\/pre>\n<p>\u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u0679\u06cc\u06af\u0632 \u063a\u06cc\u0631 \u0645\u062d\u0641\u0648\u0638 \u0631\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0648\u06c1 \u0627\u0633 \u0630\u0631\u06cc\u0639\u06c1 \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u0633\u06d2 \u0648\u06c1 \u062a\u062e\u0644\u06cc\u0642 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u062a\u06be\u06d2\u060c \u0646\u06c1 \u06a9\u06c1 \u0628\u0631\u0627\u0624\u0632\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h5 id=\"heading-newline-trimmed-ending-tag-gt\">\u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0679\u06cc\u06af \u0644\u0627\u0626\u0646 \u0628\u0631\u06cc\u06a9 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u0686\u06be\u0648\u0679\u0627 \u06c1\u0648\u0627 (<code>-%><\/code>)<\/h5>\n<p>\u0628\u0646\u062f \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0679\u06cc\u06af \u06a9\u06d2 \u0641\u0648\u0631\u0627\u064b \u0628\u0639\u062f \u0644\u0627\u0626\u0646 \u0628\u0631\u06cc\u06a9 \u06a9\u0648 \u06c1\u0679\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0644\u0627\u0626\u0646 \u0628\u0631\u06cc\u06a9 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06a9\u0679\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u0646\u062f \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0679\u06cc\u06af \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ejs\"><ul>\n  <% friends.forEach(function (friend) { %>\n  <li><%= friend -%><\/li>\n  <% }) %>\n<\/ul>\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u0633 \u0637\u0631\u062d \u0644\u06af\u062a\u0627 \u06c1\u06d2: <code><%= -%><\/code> \u0627\u0631\u062f \u06af\u0631\u062f <code>friend<\/code> \u0645\u062a\u063a\u06cc\u0631 \u062c\u0648 EJS \u06a9\u0648 \u0628\u0646\u062f \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 EJS \u0679\u06cc\u06af \u06a9\u06d2 \u0628\u0639\u062f \u062a\u0645\u0627\u0645 \u0646\u0626\u06cc \u0644\u0627\u0626\u0646\u0648\u06ba \u06a9\u0648 \u062a\u0631\u0627\u0634\u0646\u06d2 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0679\u067e:<\/strong> \u0646\u06cc\u0648 \u0644\u0627\u0626\u0646 \u0679\u0631\u0645 \u0627\u06cc\u0646\u0688 \u0679\u06cc\u06af\u0632 \u06a9\u0648 \u0646\u06cc\u0648 \u0644\u0627\u0626\u0646 \u0633\u0644\u0627\u0624 \u0679\u06cc\u06af \u0628\u06be\u06cc \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h5 id=\"heading-whitespace-slurp-opening-tag-lt\">\u0627\u0633\u067e\u06cc\u0633 \u0633\u0644\u0648\u0631\u067e \u0627\u0648\u067e\u0646\u0646\u06af \u0679\u06cc\u06af (<code><%_<\/code>)<\/h5>\n<p>\u062e\u0627\u0644\u06cc \u062c\u06af\u06c1\u0648\u06ba \u0627\u0648\u0631 \u0679\u06cc\u0628\u0632 \u06a9\u0648 \u06c1\u0679\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0627\u0626\u0679 \u0627\u0633\u067e\u06cc\u0633 \u0633\u0644\u0631\u067e \u0679\u06cc\u06af \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0627\u06cc\u06a9 \u06c1\u06cc \u0644\u0627\u0626\u0646 \u067e\u0631 EJS \u0679\u06cc\u06af \u0633\u06d2 \u0641\u0648\u0631\u0627\u064b \u067e\u06c1\u0644\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ejs\"><ul>\n  <%_ friends.forEach(function (friend) { %>\n  <li><%= friend %><\/li>\n  <%_ }) %>\n<\/ul>\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u0633 \u0637\u0631\u062d \u0644\u06af\u062a\u0627 \u06c1\u06d2: <code><%_ %><\/code> EJS \u06a9\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0679\u06cc\u06af\u0632 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0646\u0688\u06cc\u0646\u0679\u06cc\u0634\u0646 \u06a9\u0648 \u062a\u0631\u0627\u0634\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0644\u0648 \u0646\u062d\u0648 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h5 id=\"heading-whitespace-slurp-closing-tag-gt\">\u0627\u0633\u067e\u06cc\u0633 \u0633\u0644\u0648\u0631\u067e \u06a9\u0644\u0648\u0632\u0646\u06af \u0679\u06cc\u06af (<code>_%><\/code>)<\/h5>\n<p>\u06a9\u0644\u0648\u0632\u0646\u06af \u0679\u06cc\u06af \u06a9\u06d2 \u0641\u0648\u0631\u0627\u064b \u0628\u0639\u062f \u062e\u0627\u0644\u06cc \u062c\u06af\u06c1\u0648\u06ba \u0627\u0648\u0631 \u0679\u06cc\u0628\u0632 \u06a9\u0648 \u06c1\u0679\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0633\u067e\u06cc\u0633 \u0633\u0644\u0631\u067e\u0646\u06af \u0627\u06cc\u0646\u0688 \u0679\u06cc\u06af \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u06c1\u06d2 \u062a\u0648 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0644\u0627\u0626\u0646 \u0628\u0631\u06cc\u06a9 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ejs\"><ul>\n  <% friends.forEach(function (friend) { _%>\n  <li><%= friend %><\/li>\n  <% }) _%>\n<\/ul>\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u0633 \u0637\u0631\u062d \u0644\u06af\u062a\u0627 \u06c1\u06d2: <code><% _%><\/code> EJS \u06a9\u0648 \u06c1\u0631 \u0628\u0646\u062f \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0679\u06cc\u06af \u06a9\u06d2 \u0628\u0639\u062f \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0644\u0627\u0626\u0646 \u06a9\u06cc\u0631\u06cc\u06a9\u0679\u0631 \u06a9\u0648 \u062a\u0631\u0627\u0634\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0644\u0648 \u0646\u062d\u0648 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0644\u06cc \u0644\u0627\u0626\u0646 \u06a9\u0627 \u0627\u0646\u0688\u06cc\u0646\u0679\u06cc\u0634\u0646 \u0648\u06c1\u06cc \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>EJS \u062a\u0628\u0635\u0631\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0645\u0646\u0679 \u0679\u06cc\u06af\u0632 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0646\u0638\u0631 \u0627\u0646\u062f\u0627\u0632 \u06a9\u0631 \u062f\u06cc\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062c\u0646\u0631\u06cc\u0679\u0688 HTML \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ejs\"><ul>\n  <%# Loop through the friends array %>\n  <% friends.forEach(function (friend) { _%>\n  <li><%= friend %><\/li>\n  <% }) _%>\n<\/ul>\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u062a\u0628\u0635\u0631\u0648\u06ba \u06a9\u0648 \u0627\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code><%# %><\/code>.<\/p>\n<p><strong>\u0679\u067e:<\/strong> EJS \u0622\u067e \u06a9\u0648 \u06a9\u0686\u06be \u0679\u06cc\u06af\u0632 \u06a9\u0648 \u06cc\u06a9\u062c\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u06d2 \u0645\u0645\u06a9\u0646 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p><code><%_ _%><\/code>: \u0627\u06cc\u06a9 \u06c1\u06cc \u0644\u0627\u0626\u0646 \u067e\u0631 \u0645\u0644\u062d\u0642\u06c1 \u062e\u0627\u0644\u06cc \u062c\u06af\u06c1\u0648\u06ba \u0627\u0648\u0631 \u0679\u06cc\u0628\u0632 \u06a9\u0648 \u06c1\u0679\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u067e\u06cc\u0633 \u0633\u0644\u0631\u067e\u0646\u06af \u0627\u0633\u06a9\u0631\u067e\u0679\u0644\u06cc\u0679 \u06a9\u0648 \u0627\u06cc\u0646\u0688 \u0679\u06cc\u06af \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u06af\u0631 \u0644\u0627\u0626\u0646 \u0645\u06cc\u06ba \u0648\u0642\u0641\u06c1 \u06c1\u0648 \u062a\u0648 \u0627\u06af\u0644\u06cc \u06a9\u0648 \u06c1\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code><% -%><\/code>: \u0644\u0627\u0626\u0646 \u0628\u0631\u06cc\u06a9 \u0622\u0648\u0627\u0632\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u06d2 \u0628\u06c1\u0627\u0624 \u06a9\u0648 \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code><%= -%><\/code>: \u0641\u0631\u0627\u0631 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0679\u06cc\u06af\u0632 \u06a9\u0648 \u0644\u0627\u0626\u0646 \u0628\u0631\u06cc\u06a9 \u0633\u0644\u0631\u067e \u0622\u0648\u0627\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h4 id=\"heading-how-to-use-ejs-in-an-express-project\">\u0627\u067e\u0646\u06d2 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba EJS \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h4>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u062d\u0635\u06d2 \u0622\u067e \u06a9\u06d2 Express.js \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba EJS \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u067e \u06a9\u06cc \u0631\u06c1\u0646\u0645\u0627\u0626\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h5 id=\"heading-install-ejs\">EJS \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h5>\n<p>\u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba EJS \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">npm install ejs@6.0.1\n<\/code><\/pre>\n<p>\u0627\u06af\u0644\u0627\u060c \u0645\u0646\u0635\u0648\u0628\u06d2 \u06a9\u06cc <code>server.js<\/code> \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0646\u0627\u0633\u0628 \u0645\u062a\u062d\u0631\u06a9 \u0637\u0648\u0631 \u067e\u0631 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 HTML \u0645\u0646\u0638\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">\/\/ Add the Express and EJS modules\nimport express from \"express\";\nimport ejs from \"ejs\";\n\n\/\/ Create a new Express application instance\nconst app = express();\n\n\/\/ Specify the host and port to receive requests\nconst host = \"localhost\";\nconst port = 8000;\n\n\/\/ Define the data object\nconst friendsData = {\n  bestFriend: \"Sarah\",\n  codingFriend: \"Abraham\",\n  dreamFriend: \"Mary\",\n};\nconst replacementObject = { friends: friendsData };\n\n\/\/ Use backticks to define a template string with embedded JavaScript\nconst templateString = `\n\n  \n    \n    <ul>\n    <%# Loop through the friends object %>\n    <% for (const eachFriend in friends) { -%>\n      <li><%= friends[eachFriend] %> is my <%= eachFriend %><\/li>\n    <% } -%>\n    <\/ul>\n  \n\n`;\n\n\/\/ Compile and render the template string to HTML (the rendered view)\nconst htmlData = ejs.render(templateString, replacementObject);\n\n\/\/ Use the dynamic view as a response to 'GET \/' requests\napp.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => res.send(htmlData));\n\n\/\/ Run the server on the specified port and hostname\napp.listen(port, host, () => {\n  console.log(`Server running live at http:\/\/${host}:\n${port}!`);\n});\n<\/code><\/pre>\n<p>\u0627\u06c1\u0645 \u06a9\u0627\u0645 \u062c\u0648 \u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0648\u06c1 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 APIs \u062c\u06cc\u0633\u06d2 \u0631\u0627\u0624\u0679\u0631\u0632 \u0627\u0648\u0631 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u062b\u0627\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u062c\u0648 Node.js \u0645\u06cc\u06ba HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0633\u0631\u0648\u0631 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0633\u0679\u0631\u0646\u06af \u06a9\u0648 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u06cc\u06c1 \u06c1\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0644\u0627\u0626\u0646\u0679\u0633 \u0633\u06d2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba \u0648\u0635\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0631\u0627\u0633\u062a\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>app.listen()<\/code> \u0648\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u062c\u0648 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u067e\u0648\u0631\u0679 \u067e\u0631 Node.js HTTP \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u0648 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h5 id=\"heading-run-the-express-app\">\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/h5>\n<p>\u0633\u0631\u0648\u0631 \u0642\u0627\u0626\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u0633\u06d2 Node.js \u0633\u06d2 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">node --watch server.js\n<\/code><\/pre>\n<p>\u067e\u06be\u0631\u060c \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e\u0633 \u06a9\u0648 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u0686\u0644\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4 <code>http:\/\/localhost:8000<\/code>.<\/p>\n<p><strong>\u0679\u067e:<\/strong> \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u06cc\u06ba: <code>Ctrl + C<\/code> \u0648\u0646\u0688\u0648\u0632\u060c \u0645\u06cc\u06a9 \u0627\u0648 \u0627\u06cc\u0633 \u06cc\u0627 \u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631\u06d4<\/p>\n<p>\u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u0645\u0646\u0638\u0645 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u067e\u0646\u06d2 \u062a\u0645\u0627\u0645 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u06a9\u0648 \u0645\u0646\u0638\u0645 \u06a9\u0631\u06cc\u06ba\u06d4 <code>views<\/code> \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u06cc\u06c1 \u0639\u0627\u0645 \u0631\u0648\u0627\u062c \u06c1\u06d2\u06d4<\/p>\n<h5 id=\"heading-create-a-directory-for-view-templates\">\u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h5>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>views<\/code> \u062a\u0645\u0627\u0645 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0646\u06c1\u06cc\u06ba \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06cc \u0631\u0648\u0679 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-console\">mkdir views\n<\/code><\/pre>\n<h5 id=\"heading-create-an-index-view-template\">\u0627\u0646\u0688\u06cc\u06a9\u0633 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h5>\n<pre><code class=\"language-console\">touch views\/index.ejs\n<\/code><\/pre>\n<p><strong>\u0679\u067e:<\/strong> EJS \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0641\u0627\u0626\u0644 \u06c1\u06d2\u06d4 <code>.ejs<\/code> \u062a\u0648\u0633\u06cc\u0639<\/p>\n<p>\u0641\u0627\u0626\u0644 \u06a9\u0648 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 HTML \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06a9\u0648 \u0627\u0633 \u0633\u06d2 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba: <code>server.js<\/code> \u0627\u0633 \u067e\u0631<\/p>\n<p><code>views\/index.ejs<\/code><\/p>\n<pre><code class=\"language-ejs\">\n  \n    \n    <ul>\n      <%# Loop through the friends object %>\n      <% for (const eachFriend in friends) { -%>\n      <li><%= friends[eachFriend] %> is my <%= eachFriend %><\/li>\n      <% } -%>\n    <\/ul>\n  \n\n<\/code><\/pre>\n<h5 id=\"heading-update-the-server-to-retrieve-view-templates-from-the-views-folder\">\u0633\u0631\u0648\u0631 \u0633\u06d2 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 <code>views<\/code> \u0641\u0648\u0644\u0688\u0631<\/h5>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst app = express();\nconst host = \"localhost\";\nconst port = 8000;\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n\/\/ Specify the app's views directory\napp.set(\"views\", join(__dirname, \"views\"));\n\n\/\/ Specify the app's view engine\napp.set(\"view engine\", \"ejs\");\n\n\/\/ Define the data object\nconst friendsData = {\n  bestFriend: \"Sarah\",\n  codingFriend: \"Abraham\",\n  dreamFriend: \"Mary\",\n};\nconst replacementObject = { friends: friendsData };\n\n\/\/ Compile and render the index view template to HTML and use it as a response to 'GET \/' requests\napp.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => {\n  res.render(\"index\", replacementObject);\n});\n\n\/\/ Run the server on the specified port and hostname\napp.listen(port, host, () => {\n  console.log(`Server running live at http:\/\/${host}:\n${port}`);\n});\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0633\u06d2 \u06c1\u06d2\u06d4 <code>render()<\/code> \u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 <code>index.ejs<\/code> \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0641\u0627\u0626\u0644\u06d4<\/p>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong><\/p>\n<ul>\n<li>\u0627\u06af\u0631 \u0686\u06be\u0648\u0691 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4 <code>app.set(\"view engine\", \"ejs\")<\/code> \u0644\u0627\u0626\u0646\u060c \u067e\u06be\u0631 <code>render()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u062f\u0644\u06cc\u0644 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u0641\u0627\u0626\u0644 \u0627\u06cc\u06a9\u0633\u0679\u06cc\u0646\u0634\u0646 \u06a9\u0627 \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2:<\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">app.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => {\n  res.render(\"index.ejs\", replacementObject);\n});\n<\/code><\/pre>\n<ul>\n<li>\n<p>\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0645\u06cc\u06ba \u0688\u06cc\u0641\u0627\u0644\u0679 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0627\u0646\u062c\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u067e\u06af (\u0633\u0627\u0628\u0642\u06c1 \u200b\u200b\u062c\u06cc\u0688)\u060c \u0627\u06cc \u062c\u06d2 \u0627\u06cc\u0633\u060c \u0645\u0648\u0646\u0686\u06be\u06cc\u06ba\u060c \u0627\u0648\u0631 \u06c1\u06cc\u0646\u0688\u0644 \u0628\u0627\u0631 \u062c\u06cc\u0633\u06d2 \u0627\u0646\u062c\u0646\u0648\u06ba \u06a9\u0648 \u0628\u06be\u06cc \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>app.set()<\/code>    \u0627\u067e\u0646\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0645\u06cc\u06ba \u06a9\u0644\u06cc\u062f\u06cc \u0642\u062f\u0631 \u06a9\u06d2 \u062c\u0648\u0691\u06d2 \u06a9\u06cc\u0633\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0622\u067e \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>app.get()<\/code> \u062d\u0633\u0628 \u0630\u06cc\u0644:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">app.set(\"my name\", \"Oluwatobi\");\n\nconst bio = app.get(\"my name\");\n\nconsole.log(bio); \/\/ Outputs: \"Oluwatobi\"\n<\/code><\/pre>\n<h4 id=\"heading-how-to-create-reusable-ejs-templates-partials\">\u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 EJS \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba (\u062c\u0632\u0648\u06cc)<\/h4>\n<p>EJS \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>include()<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06a9\u0648 \u062f\u0648\u0633\u0631\u06d2 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0645\u06cc\u06ba \u0627\u06cc\u0645\u0628\u06cc\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0679\u067e:<\/strong> EJS \u0645\u06cc\u06ba\u060c \u062d\u0635\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h5 id=\"heading-syntax-of-the-include-method\">\u0634\u0627\u0645\u0644() \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627 \u0646\u062d\u0648<\/h5>\n<p>\u06a9\u06c1 <code>include()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u062f\u0648 \u062f\u0644\u0627\u0626\u0644 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0646\u062d\u0648 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-ejs\"><%- include(\"path\/to\/partial\", data) %>\n<\/code><\/pre>\n<ul>\n<li>\n<p><code>\"path\/to\/partial\"<\/code>: (\u0636\u0631\u0648\u0631\u06cc) \u0645\u0648\u062c\u0648\u062f\u06c1 \u0641\u0627\u0626\u0644 (\u067e\u06cc\u0631\u0646\u0679 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679) \u06a9\u06d2 \u0646\u0633\u0628\u062a \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u06af\u0631 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0641\u0627\u0626\u0644 \u0627\u0633 \u0645\u06cc\u06ba \u0648\u0627\u0642\u0639 \u06c1\u06d2: <code>\".\/views\/index.ejs\"<\/code> \u0627\u0648\u0631 \u062d\u0635\u06c1 \u06c1\u06d2\u06d4 <code>\".\/views\/partials\/footer.ejs\"<\/code>\u060c <code>include()<\/code> \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u062f\u0644\u06cc\u0644 \u06c1\u06d2\u06d4 <code>\"partials\/footer\"<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>data<\/code>: (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc) \u0627\u06cc\u06a9 \u0634\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u062e\u0648\u0627\u0635 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648 \u062c\u0633 \u06a9\u0648 \u062d\u0635\u06c1 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h5 id=\"heading-how-to-include-a-partial-in-a-view-template\">\u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0645\u06cc\u06ba \u067e\u0631\u0632\u06d2 \u06a9\u06cc\u0633\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h5>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u0631\u0648\u0631 \u0641\u0627\u0626\u0644 \u067e\u0631 \u063a\u0648\u0631 \u06a9\u0631\u06cc\u06ba:<\/p>\n<p><code>server.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import express from \"express\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst app = express();\nconst host = \"localhost\";\nconst port = 8080;\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\napp.set(\"views\", join(__dirname, \"views\"));\napp.set(\"view engine\", \"ejs\");\n\nconst friendsData = {\n  bestFriend: \"Sarah\",\n  codingFriend: \"Abraham\",\n  dreamFriend: \"Mary\",\n};\nconst replacementObject = { friends: friendsData };\n\napp.get(\"https:\/\/www.freecodecamp.org\/\", (req, res) => {\n  res.render(\"index\", replacementObject);\n});\n\napp.listen(port, host, () => {\n  console.log(`Server running live at http:\/\/${host}:\n${port}`);\n});\n<\/code><\/pre>\n<p>\u0627\u0648\u067e\u0631 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u06c1\u06d2\u06d4 <code>index<\/code> \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u062c\u0628 \u0635\u0627\u0631\u0641 GET \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4 <code>\"https:\/\/www.freecodecamp.org\/\"<\/code> \u0633\u0691\u06a9 \u0630\u06cc\u0644 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4 <code>index.ejs<\/code> \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0641\u0627\u0626\u0644\u06d4<\/p>\n<p><code>views\/index.ejs<\/code><\/p>\n<pre><code class=\"language-ejs\">\n  \n    \n    <ul>\n    <%# Loop through the friends object %>\n    <% for (const eachFriend in friends) { -%>\n      <li><%= friends[eachFriend] %> is my <%= eachFriend %><\/li>\n    <% } -%>\n    <\/ul>\n  \n\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u0636\u0631\u0648\u0631\u062a \u06c1\u0648 <code><\/p>\n<li\/><\/code> \u0648\u06c1 \u0639\u0646\u0627\u0635\u0631 \u062c\u0646\u06c1\u06cc\u06ba \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u0645\u06cc\u06ba \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u0627\u0644\u06af \u0641\u0627\u0626\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0646\u06a9\u0627\u0644\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>include()<\/code> \u0636\u0631\u0648\u0631\u062a \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0627\u0633\u06d2 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u06c1\u06d2 \u0637\u0631\u06cc\u0642\u06c1:<\/p>\n<h5 id=\"heading-create-a-partials-directory\">\u062c\u0632\u0648\u06cc \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h5>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>partials<\/code> \u0622\u067e \u06a9\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc <code>views<\/code> \u0648\u06c1 \u0641\u0648\u0644\u0688\u0631 \u062c\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-console\">mkdir views\/partials\n<\/code><\/pre>\n<h5 id=\"heading-create-a-partial-view-template\">\u0627\u06cc\u06a9 \u062c\u0632\u0648\u06cc \u0645\u0646\u0638\u0631 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h5>\n<p>\u0627\u06cc\u06a9 \u062c\u0632\u0648\u06cc \u0645\u0646\u0638\u0631 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 <code><\/p>\n<li\/><\/code> \u0639\u0646\u0635\u0631<\/p>\n<pre><code class=\"language-console\">touch views\/partials\/friendLi.ejs\n<\/code><\/pre>\n<p>\u0641\u0627\u0626\u0644 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code><\/p>\n<li\/><\/code> \u0639\u0646\u0635\u0631<\/p>\n<p><code>views\/partials\/friendLi.ejs<\/code><\/p>\n<pre><code class=\"language-ejs\"><li><%= friend %> is my <%= friendType %><\/li>\n<\/code><\/pre>\n<h5 id=\"heading-update-the-main-view-template\">\u0688\u06cc\u0641\u0627\u0644\u0679 \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h5>\n<p>\u0627\u0641\u062a\u062a\u0627\u062d\u06cc <code>index.ejs<\/code> \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>include()<\/code> \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 <code>friendLi.ejs<\/code> \u062c\u0632\u0648\u06cc \u0645\u0646\u0638\u0631 \u06a9\u0627 \u0633\u0627\u0646\u0686\u06c1\u06d4<\/p>\n<p><code>views\/index.ejs<\/code><\/p>\n<pre><code class=\"language-ejs\">\n  \n    \n    <ul>\n    <%# Loop through the friends object %>\n    <% for (const eachFriend in friends) { -%>\n      <%- include(\"partials\/friendLi\", { friend: friends[eachFriend], friendType: eachFriend }) %>\n    <% } -%>\n    <\/ul>\n  \n\n<\/code><\/pre>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>include()<\/code> \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u0627 <code><\/p>\n<li\/><\/code> \u0639\u0646\u0627\u0635\u0631 \u0622\u067e \u06a9\u0648 \u0627\u0646\u06c1\u06cc\u06ba \u0645\u062a\u0639\u062f\u062f \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u0645\u06cc\u06ba \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>index.ejs<\/code> \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<h5 id=\"heading-run-your-server-from-the-root-directory\">\u0631\u0648\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0633\u06d2 \u0633\u0631\u0648\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/h5>\n<pre><code class=\"language-console\">node --watch server.js\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e\u0633 \u06a9\u0648 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u0686\u0644\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4 <code>http:\/\/localhost:8080<\/code>.<\/p>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 EJS \u062d\u0635\u06c1 \u062f\u06a9\u06be\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 <code><\/p>\n<li\/><\/code> \u0639\u0646\u0627\u0635\u0631 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u06c1\u06cc \u062a\u0635\u0648\u0631\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0645\u062a\u0639\u062f\u062f \u0648\u06cc\u0648 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u0645\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06d2 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0628\u0627\u0631\u060c \u0641\u0648\u0679\u0631 \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0627\u062c\u0632\u0627\u0621 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-overview\">\u062e\u0627\u06a9\u06c1<\/h2>\n<p>\u0627\u0633 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0646\u06d2 \u0627\u0646 \u0628\u0646\u06cc\u0627\u062f\u06cc \u062a\u0635\u0648\u0631\u0627\u062a \u06a9\u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u06cc\u0627 \u06c1\u06d2 \u062c\u0646 \u06a9\u06cc \u0622\u067e \u06a9\u0648 Node.js \u0627\u0648\u0631 Express.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0646\u06d2 \u0628\u0627\u062a \u06a9\u06cc \u06a9\u06c1 Node.js \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0645\u0627\u0688\u06cc\u0648\u0644 \u0633\u067e\u0648\u0631\u0679\u060c \u0627\u0648\u0631 HTTP \u0633\u0631\u0648\u0631 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4 \u06c1\u0645 \u0646\u06d2 \u06cc\u06c1 \u0628\u06be\u06cc \u062f\u06cc\u06a9\u06be\u0627 \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d Express.js \u0631\u0648\u0679\u0633\u060c \u0631\u0627\u0624\u0679\u0631\u0632 \u0627\u0648\u0631 \u0648\u06cc\u0648\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 \u06a9\u06cc \u062a\u0631\u0642\u06cc \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0686\u0627\u06c1\u06d2 \u0622\u067e \u06a9\u0633\u06cc \u0686\u06be\u0648\u0679\u06d2 \u067e\u0631\u0633\u0646\u0644 \u067e\u0631\u0627\u062c\u06cc\u06a9\u0679 \u067e\u0631 \u063a\u0648\u0631 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba \u06cc\u0627 \u0628\u0691\u06d2 \u06cc\u0648\u0632\u0631 \u0628\u06cc\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0644 \u0627\u0633\u0679\u06cc\u06a9 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u060c \u0627\u0628 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 Node.js \u0627\u0648\u0631 Express.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0679\u06be\u0648\u0633 \u0646\u0642\u0637\u06c1 \u0622\u063a\u0627\u0632 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0634\u06a9\u0631\u06cc\u06c1!<\/p>\n<h3 id=\"heading-dive-deeper-into-nodejs-and-expressjs\">Node.js \u0627\u0648\u0631 Express.js \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0632\u06cc\u062f \u062c\u0627\u0646\u06cc\u06ba\u06d4<\/h3>\n<p>\u06cc\u06c1 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u0622\u067e \u06a9\u0648 Node.js \u0627\u0648\u0631 Express.js \u0622\u0633\u0627\u0646 \u06a9\u062a\u0627\u0628\u0648\u06ba \u06a9\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06cc \u0627\u06cc\u06a9 \u062c\u06be\u0644\u06a9 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0686\u0627\u06c1\u06d2 \u0622\u067e \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0688\u06cc\u0648\u0644\u067e\u0645\u0646\u0679 \u0633\u06cc\u06a9\u06be \u0631\u06c1\u06d2 \u06c1\u0648\u06ba\u060c \u0627\u067e\u0646\u06cc JavaScript \u06a9\u06cc \u0645\u06c1\u0627\u0631\u062a\u0648\u06ba \u06a9\u0648 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0688\u06cc\u0648\u0644\u067e\u0645\u0646\u0679 \u0633\u06d2 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0627 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba\u060c \u06cc\u0627 Node.js \u0627\u0648\u0631 Express.js \u06a9\u0627 \u0639\u0645\u0644\u06cc \u062a\u0639\u0627\u0631\u0641 \u062a\u0644\u0627\u0634 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba\u060c \u06cc\u06c1 \u06a9\u062a\u0627\u0628 \u0622\u067e \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u0628\u0646\u0627\u0646\u06d2\u060c \u062c\u0627\u0646\u0686\u0646\u06d2 \u0627\u0648\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0645\u06c1\u0627\u0631\u062a\u0648\u06ba \u06a9\u0648 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u06c1\u0645 Node.js \u0627\u0648\u0631 Express.js \u0645\u06cc\u06ba \u0645\u0632\u06cc\u062f \u06af\u06c1\u0631\u0627\u0626\u06cc \u0645\u06cc\u06ba \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0639\u0645\u0644\u06cc \u0648\u0636\u0627\u062d\u062a\u0648\u06ba \u0627\u0648\u0631 \u0645\u062b\u0627\u0644\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0641\u0627\u0626\u0644 \u0645\u06cc\u0646\u062c\u0645\u0646\u0679\u060c \u0641\u0627\u0626\u0644 \u0627\u067e \u0644\u0648\u0688\u0632\u060c \u0641\u0627\u0631\u0645\u0632\u060c \u0633\u06cc\u0634\u0646\u0632\u060c \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u06a9\u0645\u06cc\u0648\u0646\u06cc\u06a9\u06cc\u0634\u0646\u060c \u0679\u06cc\u0633\u0679\u0646\u06af\u060c TypeScript \u0627\u0648\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u062c\u06cc\u0633\u06d2 \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/10\/1791048120_989_Nodejs-\u0627\u0648\u0631-Expressjs-\u06c1\u06cc\u0646\u0688-\u0628\u06a9-\u0628\u0631\u0627\u0626\u06d2-\u0627\u0628\u062a\u062f\u0627\u0626\u06cc\u06c1-\u0633\u0631\u0648\u0631\u0632\u060c-\u0631\u0648\u0679\u0633\u060c.jpg\" alt=\"Node.js \u0627\u0648\u0631 Express.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0639\u0645\u06cc\u0631: \u0648\u06cc\u0628 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631\u060c \u062c\u0627\u0646\u0686\u060c \u0627\u0648\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0639\u0645\u0644\u06cc\u060c \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u062f\u0648\u0633\u062a\u0627\u0646\u06c1 \u0631\u06c1\u0646\u0645\u0627\u06d4\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Node.js \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0648\u06cc\u0628 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u0646 \u0679\u0627\u0626\u0645 \u0645\u0627\u062d\u0648\u0644 \u06c1\u06d2\u06d4 \u0686\u06be\u0648\u0679\u06d2 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0633\u06d2 \u0644\u06d2 \u06a9\u0631 \u0628\u0691\u06cc \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u062a\u06a9\u060c Node.js APIs \u0627\u0648\u0631 \u0679\u0648\u0644\u0632 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u06a9\u06cc \u0622\u067e \u06a9\u0648 \u0645\u062e\u062a\u0644\u0641 \u0642\u0633\u0645 \u06a9\u06d2 \u0645\u0627\u062d\u0648\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 JavaScript \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 Node.js \u0633\u06cc\u06a9\u06be\u0646\u0627 \u0645\u0634\u06a9\u0644 \u06c1\u0648 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":30307,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-30306","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/30306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=30306"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/30306\/revisions"}],"predecessor-version":[{"id":30308,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/30306\/revisions\/30308"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media\/30307"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=30306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=30306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=30306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}