{"id":28045,"date":"2021-07-25T12:54:35","date_gmt":"2021-07-25T05:54:35","guid":{"rendered":"https:\/\/wiki.tino.org\/staging\/?p=28045"},"modified":"2021-11-22T17:48:01","modified_gmt":"2021-11-22T10:48:01","slug":"expressjs-la-gi","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/expressjs-la-gi\/","title":{"rendered":"ExpressJS l\u00e0 g\u00ec? T\u1ea1i sao n\u00ean s\u1eed d\u1ee5ng ExpressJS?"},"content":{"rendered":"\n<p><strong>N\u1ebfu b\u1ea1n \u0111\u00e3 th\u1ef1c hi\u1ec7n b\u1ea5t k\u1ef3 c\u00f4ng vi\u1ec7c n\u00e0o v\u1edbi Node.js ho\u1eb7c b\u1ea5t k\u1ef3 l\u1eadp tr\u00ecnh ph\u00eda m\u00e1y ch\u1ee7 n\u00f3i chung, b\u1ea1n s\u1ebd bi\u1ebft \u0111\u1ebfn ExpressJS. Framework n\u00e0y \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i b\u1edfi c\u00e1c c\u00f4ng ty l\u1edbn nh\u01b0 <a href=\"https:\/\/www.foxsports.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Fox Sports<\/a>, IBM v\u00e0 th\u1eadm ch\u00ed c\u1ea3 Uber. V\u1eady ExpressJS l\u00e0 g\u00ec? T\u1ea1i sao n\u00ean s\u1eed d\u1ee5ng ExpressJS? C\u00e1c b\u1ea1n h\u00e3y \u0111\u1ecdc ngay b\u00e0i vi\u1ebft d\u01b0\u1edbi \u0111\u00e2y \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft nh\u00e9!<\/strong><\/p>\n\n\n\n<h2 id=\"ExpressJS_l\u00e0_g\u00ec?\"><strong>ExpressJS l\u00e0 g\u00ec?<\/strong><\/h2>\n\n\n\n<h3 id=\"\u0110\u1ecbnh_ngh\u0129a_ExpressJS\"><strong>\u0110\u1ecbnh ngh\u0129a ExpressJS<\/strong><\/h3>\n\n\n\n<p>ExpressJS l\u00e0 m\u1ed9t<a href=\"https:\/\/tino.vn\/blog\/framework-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\"> framework<\/a> \u1ee9ng d\u1ee5ng web c\u00f3 m\u00e3 ngu\u1ed3n m\u1edf v\u00e0 mi\u1ec5n ph\u00ed \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean n\u1ec1n t\u1ea3ng Node.js. ExpressJS \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 thi\u1ebft k\u1ebf v\u00e0 ph\u00e1t tri\u1ec3n c\u00e1c \u1ee9ng d\u1ee5ng web m\u1ed9t c\u00e1ch nhanh ch\u00f3ng. \u0110\u1ec3 hi\u1ec3u ExpressJS, ng\u01b0\u1eddi d\u00f9ng ch\u1ec9 c\u1ea7n ph\u1ea3i bi\u1ebft <a href=\"https:\/\/tino.vn\/blog\/html-css-javascript-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">JavaScript<\/a>, do \u0111\u00f3 n\u00ean vi\u1ec7c x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng web v\u00e0 API tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n h\u01a1n \u0111\u1ed1i v\u1edbi c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean v\u00e0 nh\u00e0 ph\u00e1t tri\u1ec3n \u0111\u00e3 th\u00e0nh th\u1ea1o JavaScript tr\u01b0\u1edbc \u0111\u00f3.<\/p>\n\n\n\n<p>V\u00ec ExpressJS l\u00e0 m\u1ed9t framework c\u1ee7a Node.js n\u00ean h\u1ea7u h\u1ebft c\u00e1c m\u00e3 \u0111\u00e3 \u0111\u01b0\u1ee3c vi\u1ebft s\u1eb5n cho c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean l\u00e0m vi\u1ec7c. B\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o c\u00e1c \u1ee9ng d\u1ee5ng web cho m\u1ed9t trang, nhi\u1ec1u trang ho\u1eb7c k\u1ebft h\u1ee3p l\u1ea1i b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng ExpressJS. framework n\u00e0y kh\u00e1 nh\u1eb9, gi\u00fap t\u1ed5 ch\u1ee9c c\u00e1c \u1ee9ng d\u1ee5ng web \u1edf ph\u00eda m\u00e1y ch\u1ee7 th\u00e0nh m\u1ed9t ki\u1ebfn \u200b\u200btr\u00fac <a href=\"https:\/\/tino.vn\/blog\/mvc-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">MVC<\/a> ho\u00e0n h\u1ea3o h\u01a1n.<\/p>\n\n\n\n<p>ExpressJS h\u1ed7 tr\u1ee3 n\u00e2ng cao c\u00e1c ch\u1ee9c n\u0103ng c\u1ee7a NodeJS. N\u1ebfu b\u1ea1n kh\u00f4ng s\u1eed d\u1ee5ng ExpressJS, b\u1ea1n ph\u1ea3i th\u1ef1c hi\u1ec7n r\u1ea5t nhi\u1ec1u l\u1eadp tr\u00ecnh ph\u1ee9c t\u1ea1p \u0111\u1ec3 x\u00e2y d\u1ef1ng m\u1ed9t API hi\u1ec7u qu\u1ea3. ExpressJS \u0111\u00e3 gi\u00fap cho vi\u1ec7c l\u1eadp tr\u00ecnh trong NodeJS tr\u1edf n\u00ean d\u1ec5 d\u00e0ng h\u01a1n r\u1ea5t nhi\u1ec1u.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1151.png\" alt=\"Expressjs-la-gi\" class=\"wp-image-28047\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1151.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1151-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"ExpressJS_\u0111\u01b0\u1ee3c_s\u1eed_d\u1ee5ng_\u0111\u1ec3_l\u00e0m_g\u00ec?\"><strong>ExpressJS \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 l\u00e0m g\u00ec?<\/strong><\/h3>\n\n\n\n<p>ExpressJS s\u1ebd gi\u00fap b\u1ea1n t\u1ed5 ch\u1ee9c ki\u1ebfn \u200b\u200btr\u00fac <a href=\"https:\/\/tino.vn\/blog\/frontend-la-gi-backend-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">back-end<\/a> c\u1ee7a m\u00ecnh. C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n web th\u01b0\u1eddng s\u1eed d\u1ee5ng ExpressJS \u0111\u1ec3 tri\u1ec3n khai ki\u1ebfn \u200b\u200btr\u00fac MVC, \u0111i\u1ec1u n\u00e0y cho ph\u00e9p h\u1ecd vi\u1ebft m\u1ed9t codebase back-end b\u1ea3o tr\u00ec t\u01b0\u01a1ng \u0111\u1ed1i d\u1ec5 d\u00e0ng.<\/p>\n\n\n\n<p>B\u1edfi v\u00ec ExpressJS ho\u1ea1t \u0111\u1ed9ng tr\u00ean back-end, n\u00ean b\u1ea1n c\u00f3 th\u1ec3 coi c\u00f4ng ngh\u1ec7 n\u00e0y nh\u01b0 m\u1ed9t \u201cb\u1ed9 n\u00e3o \u0111\u1eb1ng sau m\u1ed9t trang web\u201d. V\u00ed d\u1ee5: ExpressJS c\u00f3 th\u1ec3 x\u00e1c \u0111\u1ecbnh c\u00e1ch nh\u1eefng trang \u0111\u01b0\u1ee3c \u0111\u1ecbnh tuy\u1ebfn tr\u00ean m\u1ed9t trang web. H\u01a1n n\u1eefa, m\u1ed9t nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng ExpressJS \u0111\u1ec3 qu\u1ea3n l\u00fd x\u00e1c th\u1ef1c tr\u00ean m\u1ed9t trang web.<\/p>\n\n\n\n<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng c\u1ee7a ExpressJS:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>S\u1eed d\u1ee5ng cookie tr\u00ean m\u1ed9t trang web<\/li><li>Tri\u1ec3n khai x\u00e1c th\u1ef1c<\/li><li>Th\u00eam thanh t\u00ecm ki\u1ebfm v\u00e0o m\u1ed9t trang web<\/li><li>Cung c\u1ea5p c\u00e1c t\u1ec7p t\u0129nh nh\u01b0 h\u00ecnh \u1ea3nh<\/li><\/ul>\n\n\n\n<h2 id=\"C\u00e1c_t\u00ednh_n\u0103ng_v\u00e0_l\u1ee3i_\u00edch_n\u1ed5i_b\u1eadt_c\u1ee7a_ExpressJS\"><strong>C\u00e1c t\u00ednh n\u0103ng v\u00e0 l\u1ee3i \u00edch n\u1ed5i b\u1eadt c\u1ee7a ExpressJS<\/strong><\/h2>\n\n\n\n<h3 id=\"C\u00e1c_t\u00ednh_n\u0103ng_c\u1ee7a_ExpressJS\"><strong>C\u00e1c t\u00ednh n\u0103ng c\u1ee7a ExpressJS<\/strong><\/h3>\n\n\n\n<h4 id=\"Ph\u00e1t_tri\u1ec3n_m\u00e1y_ch\u1ee7_nhanh_h\u01a1n\"><strong>Ph\u00e1t tri\u1ec3n m\u00e1y ch\u1ee7 nhanh h\u01a1n<\/strong><\/h4>\n\n\n\n<p>ExpressJS cung c\u1ea5p cho b\u1ea1n nhi\u1ec1u t\u00ednh n\u0103ng ph\u1ed5 bi\u1ebfn c\u1ee7a Node.js d\u01b0\u1edbi d\u1ea1ng h\u00e0m c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng s\u1eed d\u1ee5ng \u1edf b\u1ea5t k\u1ef3 \u0111\u00e2u trong ch\u01b0\u01a1ng tr\u00ecnh. \u0110i\u1ec1u n\u00e0y s\u1ebd gi\u00fap r\u00fat ng\u1eafn th\u1eddi gian \u0111\u1ec3 vi\u1ebft code.<\/p>\n\n\n\n<h4 id=\"Ph\u1ea7n_m\u1ec1m_trung_gian\"><strong>Ph\u1ea7n m\u1ec1m trung gian<\/strong><\/h4>\n\n\n\n<p>Ph\u1ea7n m\u1ec1m trung gian l\u00e0 m\u1ed9t ph\u1ea7n trong ch\u01b0\u01a1ng tr\u00ecnh cho ph\u00e9p truy c\u1eadp v\u00e0o c\u01a1 s\u1edf d\u1eef li\u1ec7u, xem x\u00e9t y\u00eau c\u1ea7u c\u1ee7a kh\u00e1ch h\u00e0ng v\u00e0 c\u00e1c ph\u1ea7n m\u1ec1m trung gian kh\u00e1c. T\u00ednh n\u0103ng n\u00e0y ch\u1ecbu tr\u00e1ch nhi\u1ec7m ch\u00ednh cho vi\u1ec7c t\u1ed5 ch\u1ee9c ch\u1ee9c n\u0103ng kh\u00e1c nhau c\u1ee7a ExpressJS.<\/p>\n\n\n\n<h4 id=\"\u0110\u1ecbnh_tuy\u1ebfn\"><strong>\u0110\u1ecbnh tuy\u1ebfn<\/strong><\/h4>\n\n\n\n<p>ExpressJS cung c\u1ea5p m\u1ed9t c\u01a1 ch\u1ebf \u0111\u1ecbnh tuy\u1ebfn n\u00e2ng cao gi\u00fap duy tr\u00ec tr\u1ea1ng th\u00e1i c\u1ee7a trang web.<\/p>\n\n\n\n<h4 id=\"Khu\u00f4n_m\u1eabu\"><strong>Khu\u00f4n m\u1eabu<\/strong><\/h4>\n\n\n\n<p>ExpressJS cung c\u1ea5p c\u00e1c c\u00f4ng c\u1ee5 t\u1ea1o khu\u00f4n m\u1eabu cho ph\u00e9p c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n t\u1ea1o n\u1ed9i dung \u0111\u1ed9ng tr\u00ean c\u00e1c trang web b\u1eb1ng vi\u1ec7c x\u00e2y d\u1ef1ng c\u00e1c m\u1eabu HTML \u1edf ph\u00eda m\u00e1y ch\u1ee7.<\/p>\n\n\n\n<h4 id=\"G\u1ee1_l\u1ed7i\"><strong>G\u1ee1 l\u1ed7i<\/strong><\/h4>\n\n\n\n<p>G\u1ee1 l\u1ed7i l\u00e0 y\u1ebfu t\u1ed1 quan tr\u1ecdng \u0111\u1ec3 ph\u00e1t tri\u1ec3n c\u00e1c \u1ee9ng d\u1ee5ng web. ExpressJS gi\u00fap g\u1ee1 l\u1ed7i d\u1ec5 d\u00e0ng h\u01a1n b\u1eb1ng c\u00e1ch cung c\u1ea5p m\u1ed9t c\u01a1 ch\u1ebf c\u00f3 kh\u1ea3 n\u0103ng x\u00e1c \u0111\u1ecbnh ch\u00ednh x\u00e1c ph\u1ea7n \u1ee9ng d\u1ee5ng web c\u00f3 l\u1ed7i.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1152.png\" alt=\"Expressjs-la-gi\" class=\"wp-image-28048\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1152.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1152-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"Nh\u1eefng_l\u1ee3i_\u00edch_c\u1ee7a_ExpressJS\"><strong>Nh\u1eefng l\u1ee3i \u00edch c\u1ee7a ExpressJS<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>R\u1ea5t d\u1ec5 h\u1ecdc, ch\u1ec9 c\u1ea7n b\u1ea1n bi\u1ebft JavaScript, b\u1ea1n s\u1ebd kh\u00f4ng c\u1ea7n ph\u1ea3i h\u1ecdc m\u1ed9t ng\u00f4n ng\u1eef m\u1edbi \u0111\u1ec3 h\u1ecdc ExpressJS<\/li><li>Gi\u00fap cho vi\u1ec7c ph\u00e1t tri\u1ec3n back-end d\u1ec5 d\u00e0ng h\u01a1n nhi\u1ec1u khi s\u1eed d\u1ee5ng ExpressJS<\/li><li>M\u00e3 JavaScript \u0111\u01b0\u1ee3c di\u1ec5n gi\u1ea3i th\u00f4ng qua Google V8 JavaScript Engine c\u1ee7a Node.js. Do \u0111\u00f3, m\u00e3 s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n m\u1ed9t c\u00e1ch nhanh ch\u00f3ng v\u00e0 d\u1ec5 d\u00e0ng.<\/li><li>ExpressJS r\u1ea5t \u0111\u01a1n gi\u1ea3n \u0111\u1ec3 t\u00f9y ch\u1ec9nh v\u00e0 s\u1eed d\u1ee5ng theo nhu c\u1ea7u.<\/li><li>Cung c\u1ea5p m\u1ed9t module ph\u1ea7n m\u1ec1m trung gian linh ho\u1ea1t v\u00e0 r\u1ea5t h\u1eefu \u00edch \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 b\u1ed5 sung theo ph\u1ea3n h\u1ed3i v\u00e0 y\u00eau c\u1ea7u.<\/li><li>H\u1ed7 tr\u1ee3 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng theo m\u00f4 h\u00ecnh MVC, \u0111\u00e2y l\u00e0 m\u00f4 h\u00ecnh ph\u1ed5 bi\u1ebfn cho vi\u1ec7c l\u1eadp tr\u00ecnh web hi\u1ec7n nay.<\/li><\/ul>\n\n\n\n<h2 id=\"H\u01b0\u1edbng_d\u1eabn_c\u00e0i_\u0111\u1eb7t_ExpressJS\"><strong>H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t ExpressJS<\/strong><\/h2>\n\n\n\n<h3 id=\"T\u1ea1i_sao_n\u00ean_s\u1eed_d\u1ee5ng_ExpressJS?\"><strong>T\u1ea1i sao n\u00ean s\u1eed d\u1ee5ng ExpressJS?<\/strong><\/h3>\n\n\n\n<p>T\u00e0i s\u1ea3n qu\u00fd gi\u00e1 nh\u1ea5t trong b\u1ea5t k\u1ef3 doanh nghi\u1ec7p n\u00e0o ch\u00ednh l\u00e0 th\u1eddi gian. Nhi\u1ec1u l\u1eadp tr\u00ecnh vi\u00ean ch\u1ecbu \u00e1p l\u1ef1c ph\u1ea3i x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng web hi\u1ec7u qu\u1ea3 trong m\u1ed9t kho\u1ea3ng th\u1eddi gian ng\u1eafn. Nh\u01b0ng qu\u00e1 tr\u00ecnh \u0111\u1ec3 l\u00e0m \u0111i\u1ec1u n\u00e0y l\u1ea1i kh\u00f4ng \u0111\u01a1n gi\u1ea3n nh\u01b0 v\u1eady. \u0110\u00e2y l\u00e0 l\u00fac ExpressJS tr\u1edf th\u00e0nh c\u1ee9u cho h\u1ecd.<\/p>\n\n\n\n<p>ExpressJS c\u00f3 th\u1ec3 gi\u1ea3m m\u1ed9t n\u1eeda th\u1eddi gian vi\u1ebft m\u00e3 m\u00e0 v\u1eabn gi\u00fap nh\u00e0 ph\u00e1t tri\u1ec3n x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng web hi\u1ec7u qu\u1ea3. ExpressJS c\u00f2n cung c\u1ea5p c\u00e1c t\u00ednh n\u0103ng kh\u00e1c nhau gi\u00fap ti\u1ebft ki\u1ec7m c\u00f4ng s\u1ee9c r\u1ea5t nhi\u1ec1u.<\/p>\n\n\n\n<p>ExpressJS \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng t\u01b0\u01a1ng \u0111\u1ed1i d\u1ec5 d\u00e0ng v\u00ec c\u00f3 h\u1ed7 tr\u1ee3 JavaScript. Javascript r\u1ea5t d\u1ec5 h\u1ecdc \u0111\u1ed1i v\u1edbi b\u1ea5t k\u1ef3 ai. Do \u0111\u00f3, ExpressJS l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 tuy\u1ec7t v\u1eddi cho nh\u1eefng ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u tham gia v\u00e0o l\u0129nh v\u1ef1c ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng web v\u00e0 g\u1eb7t h\u00e1i \u0111\u01b0\u1ee3c th\u00e0nh c\u00f4ng.<\/p>\n\n\n\n<p>B\u00ean c\u1ea1nh \u0111\u00f3, ExpressJS \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n d\u1ef1a tr\u00ean n\u1ec1n t\u1ea3ng Node.js. \u0110\u00e2y l\u00e0 m\u1ed9t ki\u1ebfn tr\u00fac h\u01b0\u1edbng s\u1ef1 ki\u1ec7n v\u00e0 c\u00f3 kh\u1ea3 n\u0103ng x\u1eed l\u00fd h\u00e0ng ngh\u00ecn y\u00eau c\u1ea7u c\u1ee7a kh\u00e1ch h\u00e0ng c\u00f9ng m\u1ed9t l\u00fac, \u0111i\u1ec1u m\u00e0 PHP kh\u00f4ng th\u1ec3 th\u1ef1c hi\u1ec7n \u0111\u01b0\u1ee3c. Node.js \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf d\u00e0nh ri\u00eang \u0111\u1ec3 h\u1ed7 tr\u1ee3 c\u00e1c \u1ee9ng d\u1ee5ng web th\u1ef1c.<\/p>\n\n\n\n<p>\u0110i\u1ec1u quan tr\u1ecdng k\u1ebf ti\u1ebfp c\u1ee7a doanh nghi\u1ec7p l\u00e0 vi\u1ec7c s\u1eed d\u1ee5ng ti\u1ec1n sao cho hi\u1ec7u qu\u1ea3 \u0111\u1ec3 t\u1ed1i \u0111a h\u00f3a l\u1ee3i nhu\u1eadn. ExpressJS l\u1ea1i l\u00e0 m\u1ed9t \u1ee9ng d\u1ee5ng web mi\u1ec5n ph\u00ed v\u00e0 m\u00e3 ngu\u1ed3n m\u1edf, do \u0111\u00f3 kh\u00f4ng c\u00f3 l\u00fd do g\u00ec \u0111\u1ec3 kh\u00f4ng s\u1eed d\u1ee5ng framework n\u00e0y.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1153.png\" alt=\"Expressjs-la-gi\" class=\"wp-image-28049\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1153.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1153-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"C\u00e1ch_c\u00e0i_\u0111\u1eb7t_ExpressJS\"><strong>C\u00e1ch c\u00e0i \u0111\u1eb7t ExpressJS<\/strong><\/h3>\n\n\n\n<p><strong>B\u01b0\u1edbc 1:<\/strong> \u0110\u1ea7u ti\u00ean, b\u1ea1n h\u00e3y t\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c <strong>E:\\express\\myapp<\/strong> d\u00f9ng \u0111\u1ec3 l\u01b0u tr\u1eef \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n. Sau \u0111\u00f3 ti\u1ebfn h\u00e0nh cd \u0111\u1ebfn th\u01b0 m\u1ee5c n\u00e0y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>> E:\r\n\r\n> cd E:\\express\\myapp<\/code><\/pre>\n\n\n\n<p><strong>B\u01b0\u1edbc 2:<\/strong> Ti\u1ebfp theo h\u00e3y s\u1eed d\u1ee5ng l\u1ec7nh npm init \u0111\u1ec3 t\u1ea1o m\u1ed9t file package.json cho \u1ee9ng d\u1ee5ng.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>E:\\express\\myapp> npm init<\/code><\/pre>\n\n\n\n<p>L\u1ec7nh n\u00e0y s\u1ebd th\u00f4ng b\u00e1o cho b\u1ea1n m\u1ed9t s\u1ed1 \u0111i\u1ec1u nh\u01b0 t\u00ean, m\u00f4 t\u1ea3 v\u00e0 phi\u00ean b\u1ea3n c\u1ee7a \u1ee9ng d\u1ee5ng. L\u00fac n\u00e0y, b\u1ea1n ch\u1ec9 c\u1ea7n nh\u1ea5n RETURN \u0111\u1ec3 ch\u1ea5p nh\u1eadn c\u00e0i \u0111\u1eb7t m\u1eb7c \u0111\u1ecbnh, v\u1edbi ngo\u1ea1i l\u1ec7 sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>entry point: (index.js)<\/code><\/pre>\n\n\n\n<p><strong>B\u01b0\u1edbc 3:<\/strong> Ti\u1ebfp theo b\u1ea1n nh\u1eadp app.js ho\u1eb7c b\u1ea5t c\u1ee9 t\u00ean n\u00e0o b\u1ea1n mu\u1ed1n \u0111\u1eb7t t\u00ean thay th\u1ebf cho index.js. N\u1ebfu b\u1ea1n mu\u1ed1n s\u1eed d\u1ee5ng index.js, h\u00e3y nh\u1ea5n RETURN \u0111\u1ec3 ch\u1ea5p nh\u1eadn t\u00ean t\u1ec7p m\u1eb7c \u0111\u1ecbnh n\u00e0y.<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 4:<\/strong> Ti\u1ebfn h\u00e0nh c\u00e0i \u0111\u1eb7t Express framework trong th\u01b0 m\u1ee5c E:\\express\\myapp b\u1eb1ng l\u1ec7nh npm:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>> npm install express --save<\/code><\/pre>\n\n\n\n<p>L\u1ec7nh tr\u00ean s\u1ebd l\u01b0u ph\u1ea7n c\u00e0i \u0111\u1eb7t trong th\u01b0 m\u1ee5c node_modules v\u00e0 t\u1ea1o th\u01b0 m\u1ee5c express ngay b\u00ean trong th\u01b0 m\u1ee5c \u0111\u00f3. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 nh\u1eefng module quan tr\u1ecdng \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t c\u00f9ng v\u1edbi express:<\/p>\n\n\n\n<p><strong>body-parser<\/strong>: \u0110\u00e2y l\u00e0 m\u1ed9t l\u1edbp trung gian c\u1ee7a Node.js c\u00f3 ch\u1ee9c n\u0103ng x\u1eed l\u00fd JSON, d\u1eef li\u1ec7u th\u00f4, text v\u00e0 m\u00e3 h\u00f3a URL.<\/p>\n\n\n\n<p><strong>cookie-parser<\/strong>: D\u00f9ng \u0111\u1ec3 chuy\u1ec3n \u0111\u1ed5i header c\u1ee7a Cookie v\u00e0 ph\u00e2n b\u1ed1 \u0111\u1ebfn c\u00e1c req.cookies<\/p>\n\n\n\n<p><strong>multer<\/strong>: \u0110\u00e2y c\u0169ng m\u1ed9t th\u00e0nh ph\u1ea7n trung gian c\u00f3 trong Node.js d\u00f9ng \u0111\u1ec3 x\u1eed l\u00fd ph\u1ea7n multipart\/form-data.<\/p>\n\n\n\n<p>B\u1ea1n h\u00e3y nh\u1eadp:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>> npm install body-parser --save\r\n\r\n> npm install cookie-parser --save\r\n\r\n> npm install multer --save<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1154.png\" alt=\"Expressjs-la-gi\" class=\"wp-image-28050\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1154.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1154-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p>ExpressJS \u0111ang d\u1ea7n tr\u1edf th\u00e0nh m\u1ed9t c\u00f4ng c\u1ee5 h\u1ed7 tr\u1ee3 \u0111\u1eafc l\u1ef1c cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng web. Trong t\u01b0\u01a1ng lai,framework n\u00e0y s\u1ebd c\u00f2n ph\u00e1t tri\u1ec3n m\u1ea1nh m\u1ebd h\u01a1n n\u1eefa. Tr\u00ean \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 th\u00f4ng tin c\u1ea7n thi\u1ebft \u0111\u1ec3 b\u1ea1n hi\u1ec3u h\u01a1n v\u1ec1 ExpressJS, hy v\u1ecdng \u0111\u00e2y l\u00e0 l\u1ef1a ch\u1ecdn ph\u00f9 h\u1ee3p d\u00e0nh cho b\u1ea1n.<\/p>\n\n\n\n<h2 id=\"FAQs_v\u1ec1_ExpressJS\"><strong>FAQs v\u1ec1 ExpressJS<\/strong><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"L\u00e0m_c\u00e1ch_n\u00e0o_\u0111\u1ec3_x\u1eed_l\u00fd_c\u00e1c_ph\u1ea3n_h\u1ed3i_404?\">L\u00e0m c\u00e1ch n\u00e0o \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c ph\u1ea3n h\u1ed3i 404?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Trong Express, c\u00e1c ph\u1ea3n h\u1ed3i 404 kh\u00f4ng ph\u1ea3i l\u00e0 m\u1ed9t l\u1ed7i, v\u00ec v\u1eady ph\u1ea7n m\u1ec1m x\u1eed l\u00fd l\u1ed7i s\u1ebd kh\u00f4ng th\u1ec3 nh\u1eadn ra. Ph\u1ea3n h\u1ed3i 404 ch\u1ec9 \u0111\u01a1n gi\u1ea3n l\u00e0 m\u1ed9t th\u00f4ng b\u00e1o cho b\u1ea1n bi\u1ebft hi\u1ec7n t\u1ea1i kh\u00f4ng c\u00f3 c\u00f4ng vi\u1ec7c n\u00e0o \u0111\u1ec3 l\u00e0m. N\u00f3i c\u00e1ch kh\u00e1c, Express \u0111\u00e3 th\u1ef1c thi t\u1ea5t c\u1ea3 c\u00e1c ch\u1ee9c n\u0103ng c\u1ee7a ph\u1ea7n m\u1ec1m trung gian v\u00e0 nh\u1eadn ra r\u1eb1ng kh\u00f4ng c\u00f3 ph\u1ea7n m\u1ec1m n\u00e0o ph\u1ea3n h\u1ed3i. \u0110i\u1ec1u b\u1ea1n c\u1ea7n l\u00e0m l\u00e0 th\u00eam m\u1ed9t ch\u1ee9c n\u0103ng ph\u1ea7n m\u1ec1m trung gian \u1edf d\u01b0\u1edbi c\u00f9ng c\u1ee7a ng\u0103n x\u1ebfp (b\u00ean d\u01b0\u1edbi t\u1ea5t c\u1ea3 c\u00e1c ch\u1ee9c n\u0103ng kh\u00e1c) \u0111\u1ec3 x\u1eed l\u00fd ph\u1ea3n h\u1ed3i 404.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"ExpressJS_h\u1ed7_tr\u1ee3_c\u00f4ng_c\u1ee5_m\u1eabu_n\u00e0o?\">ExpressJS h\u1ed7 tr\u1ee3 c\u00f4ng c\u1ee5 m\u1eabu n\u00e0o?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>ExpressJS h\u1ed7 tr\u1ee3 b\u1ea5t k\u1ef3 c\u00f4ng c\u1ee5 m\u1eabu n\u00e0o ph\u00f9 h\u1ee3p v\u1edbi ch\u1eef k\u00fd (\u0111\u01b0\u1eddng d\u1eabn, \u0111\u1ecba ch\u1ec9, g\u1ecdi l\u1ea1i). \u0110\u1ec3 chu\u1ea9n h\u00f3a giao di\u1ec7n c\u00f4ng c\u1ee5 m\u1eabu v\u00e0 b\u1ed9 nh\u1edb \u0111\u1ec7m, b\u1ea1n h\u00e3y xem d\u1ef1 \u00e1n consolidate.js \u0111\u1ec3 \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3. C\u00e1c c\u00f4ng c\u1ee5 m\u1eabu kh\u00f4ng c\u00f4ng khai c\u00f3 th\u1ec3 v\u1eabn h\u1ed7 tr\u1ee3 ch\u1eef k\u00fd Express.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u00e1c_b\u01b0\u1edbc_\u0111\u1ec3_thi\u1ebft_l\u1eadp_m\u1ed9t_\u1ee9ng_d\u1ee5ng_ExpressJS?\">C\u00e1c b\u01b0\u1edbc \u0111\u1ec3 thi\u1ebft l\u1eadp m\u1ed9t \u1ee9ng d\u1ee5ng ExpressJS?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p><strong>B\u01b0\u1edbc 1:<\/strong> T\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c c\u00f3 t\u00ean kh\u00f4ng \u0111\u1ed5i.<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 2<\/strong>: T\u1ea1o m\u1ed9t t\u1ec7p c\u00f3 t\u00ean package.json trong th\u01b0 m\u1ee5c \u0111\u00e3 tr\u00ean.<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 3:<\/strong> T\u1ea1o m\u1ed9t l\u1ec7nh &#8220;npm install&#8221; \u0111\u01b0\u1ee3c ch\u1ea1y tr\u00ean giao ti\u1ebfp \u0111i\u1ec7n t\u1eed.<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 4:<\/strong> T\u1ea1o m\u1ed9t t\u1ec7p c\u00f3 t\u00ean server.js.<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 5:<\/strong> T\u1ea1o t\u1ec7p \u201cB\u1ed9 \u0111\u1ecbnh tuy\u1ebfn\u201d trong g\u00f3i bao g\u1ed3m m\u1ed9t th\u01b0 m\u1ee5c c\u00f3 t\u00ean l\u00e0 index.js.<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 6:<\/strong> T\u1ea1o \u201c\u1ee8ng d\u1ee5ng\u201d trong g\u00f3i c\u00f3 t\u1ec7p index.html.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"H\u1ecdc_ExpressJS_m\u1ea5t_bao_l\u00e2u?\">H\u1ecdc ExpressJS m\u1ea5t bao l\u00e2u?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>B\u1ea1n s\u1ebd m\u1ea5t v\u00e0i ng\u00e0y \u0111\u1ebfn m\u1ed9t tu\u1ea7n \u0111\u1ec3 h\u1ecdc nh\u1eefng ki\u1ebfn \u200b\u200bth\u1ee9c c\u01a1 b\u1ea3n v\u1ec1 ExpressJS v\u1edbi \u0111i\u1ec1u ki\u1ec7n b\u1ea1n c\u00f3 m\u1ed9t s\u1ed1 kinh nghi\u1ec7m l\u00e0m vi\u1ec7c v\u1edbi JavaScript. N\u1ebfu b\u1ea1n mu\u1ed1n h\u1ecdc c\u00e1c ch\u1ee7 \u0111\u1ec1 n\u00e2ng cao h\u01a1n, h\u00e3y d\u00e0nh \u00edt nh\u1ea5t m\u1ed9t ho\u1eb7c hai th\u00e1ng \u0111\u1ec3 h\u1ecdc. V\u00ec ExpressJS  l\u00e0 c\u00f4ng ngh\u1ec7 back-end n\u00ean b\u1ea1n s\u1ebd c\u1ea7n hi\u1ec3u r\u00f5 v\u1ec1 c\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a back-end v\u00e0 front-end \u0111\u1ec3 b\u1eaft \u0111\u1ea7u.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"L\u00e0m c\u00e1ch n\u00e0o \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c ph\u1ea3n h\u1ed3i 404?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Trong Express, c\u00e1c ph\u1ea3n h\u1ed3i 404 kh\u00f4ng ph\u1ea3i l\u00e0 m\u1ed9t l\u1ed7i, v\u00ec v\u1eady ph\u1ea7n m\u1ec1m x\u1eed l\u00fd l\u1ed7i s\u1ebd kh\u00f4ng th\u1ec3 nh\u1eadn ra. Ph\u1ea3n h\u1ed3i 404 ch\u1ec9 \u0111\u01a1n gi\u1ea3n l\u00e0 m\u1ed9t th\u00f4ng b\u00e1o cho b\u1ea1n bi\u1ebft hi\u1ec7n t\u1ea1i kh\u00f4ng c\u00f3 c\u00f4ng vi\u1ec7c n\u00e0o \u0111\u1ec3 l\u00e0m. N\u00f3i c\u00e1ch kh\u00e1c, Express \u0111\u00e3 th\u1ef1c thi t\u1ea5t c\u1ea3 c\u00e1c ch\u1ee9c n\u0103ng c\u1ee7a ph\u1ea7n m\u1ec1m trung gian v\u00e0 nh\u1eadn ra r\u1eb1ng kh\u00f4ng c\u00f3 ph\u1ea7n m\u1ec1m n\u00e0o ph\u1ea3n h\u1ed3i. \u0110i\u1ec1u b\u1ea1n c\u1ea7n l\u00e0m l\u00e0 th\u00eam m\u1ed9t ch\u1ee9c n\u0103ng ph\u1ea7n m\u1ec1m trung gian \u1edf d\u01b0\u1edbi c\u00f9ng c\u1ee7a ng\u0103n x\u1ebfp (b\u00ean d\u01b0\u1edbi t\u1ea5t c\u1ea3 c\u00e1c ch\u1ee9c n\u0103ng kh\u00e1c) \u0111\u1ec3 x\u1eed l\u00fd ph\u1ea3n h\u1ed3i 404.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"ExpressJS h\u1ed7 tr\u1ee3 c\u00f4ng c\u1ee5 m\u1eabu n\u00e0o?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>ExpressJS h\u1ed7 tr\u1ee3 b\u1ea5t k\u1ef3 c\u00f4ng c\u1ee5 m\u1eabu n\u00e0o ph\u00f9 h\u1ee3p v\u1edbi ch\u1eef k\u00fd (\u0111\u01b0\u1eddng d\u1eabn, \u0111\u1ecba ch\u1ec9, g\u1ecdi l\u1ea1i). \u0110\u1ec3 chu\u1ea9n h\u00f3a giao di\u1ec7n c\u00f4ng c\u1ee5 m\u1eabu v\u00e0 b\u1ed9 nh\u1edb \u0111\u1ec7m, b\u1ea1n h\u00e3y xem d\u1ef1 \u00e1n consolidate.js \u0111\u1ec3 \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3. C\u00e1c c\u00f4ng c\u1ee5 m\u1eabu kh\u00f4ng c\u00f4ng khai c\u00f3 th\u1ec3 v\u1eabn h\u1ed7 tr\u1ee3 ch\u1eef k\u00fd Express.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u00e1c b\u01b0\u1edbc \u0111\u1ec3 thi\u1ebft l\u1eadp m\u1ed9t \u1ee9ng d\u1ee5ng ExpressJS?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p><strong>B\u01b0\u1edbc 1:<\/strong> T\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c c\u00f3 t\u00ean kh\u00f4ng \u0111\u1ed5i.<\/p><p><strong>B\u01b0\u1edbc 2<\/strong>: T\u1ea1o m\u1ed9t t\u1ec7p c\u00f3 t\u00ean package.json trong th\u01b0 m\u1ee5c \u0111\u00e3 tr\u00ean.<\/p><p><strong>B\u01b0\u1edbc 3:<\/strong> T\u1ea1o m\u1ed9t l\u1ec7nh \\\"npm install\\\" \u0111\u01b0\u1ee3c ch\u1ea1y tr\u00ean giao ti\u1ebfp \u0111i\u1ec7n t\u1eed.<\/p><p><strong>B\u01b0\u1edbc 4:<\/strong> T\u1ea1o m\u1ed9t t\u1ec7p c\u00f3 t\u00ean server.js.<\/p><p><strong>B\u01b0\u1edbc 5:<\/strong> T\u1ea1o t\u1ec7p \u201cB\u1ed9 \u0111\u1ecbnh tuy\u1ebfn\u201d trong g\u00f3i bao g\u1ed3m m\u1ed9t th\u01b0 m\u1ee5c c\u00f3 t\u00ean l\u00e0 index.js.<\/p><p><strong>B\u01b0\u1edbc 6:<\/strong> T\u1ea1o \u201c\u1ee8ng d\u1ee5ng\u201d trong g\u00f3i c\u00f3 t\u1ec7p index.html.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"H\u1ecdc ExpressJS m\u1ea5t bao l\u00e2u?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>B\u1ea1n s\u1ebd m\u1ea5t v\u00e0i ng\u00e0y \u0111\u1ebfn m\u1ed9t tu\u1ea7n \u0111\u1ec3 h\u1ecdc nh\u1eefng ki\u1ebfn \u200b\u200bth\u1ee9c c\u01a1 b\u1ea3n v\u1ec1 ExpressJS v\u1edbi \u0111i\u1ec1u ki\u1ec7n b\u1ea1n c\u00f3 m\u1ed9t s\u1ed1 kinh nghi\u1ec7m l\u00e0m vi\u1ec7c v\u1edbi JavaScript. N\u1ebfu b\u1ea1n mu\u1ed1n h\u1ecdc c\u00e1c ch\u1ee7 \u0111\u1ec1 n\u00e2ng cao h\u01a1n, h\u00e3y d\u00e0nh \u00edt nh\u1ea5t m\u1ed9t ho\u1eb7c hai th\u00e1ng \u0111\u1ec3 h\u1ecdc. V\u00ec ExpressJS  l\u00e0 c\u00f4ng ngh\u1ec7 back-end n\u00ean b\u1ea1n s\u1ebd c\u1ea7n hi\u1ec3u r\u00f5 v\u1ec1 c\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a back-end v\u00e0 front-end \u0111\u1ec3 b\u1eaft \u0111\u1ea7u.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n","protected":false},"excerpt":{"rendered":"<p>N\u1ebfu b\u1ea1n \u0111\u00e3 th\u1ef1c hi\u1ec7n b\u1ea5t k\u1ef3 c\u00f4ng vi\u1ec7c n\u00e0o v\u1edbi Node.js ho\u1eb7c b\u1ea5t k\u1ef3 l\u1eadp tr\u00ecnh ph\u00eda m\u00e1y ch\u1ee7 n\u00f3i chung, b\u1ea1n s\u1ebd bi\u1ebft \u0111\u1ebfn ExpressJS. Framework n\u00e0y \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i b\u1edfi c\u00e1c c\u00f4ng ty l\u1edbn nh\u01b0 Fox Sports, IBM v\u00e0 th\u1eadm ch\u00ed c\u1ea3 Uber. V\u1eady ExpressJS l\u00e0 g\u00ec? T\u1ea1i sao n\u00ean [&hellip;]<\/p>\n","protected":false},"author":23,"featured_media":28046,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5404],"tags":[6187],"class_list":["post-28045","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webmasters","tag-ho-tro-developer"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=28045"}],"version-history":[{"count":0,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28045\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/28046"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=28045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=28045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=28045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}