Nhắc lại luồng trong mô hình MVC: browser sẽ gửi request đến web server thông qua http protocol, sau đó sẽ đến phần route để math cái path và xem method của request là gì?, hành động trên được xem như action và action này được dispatcher chuyển qua function handler(tách ra thành controller), sau đó controller sẽ tương tác với model và view và trả về web server, web server trả về browser thông qua response và browser sẽ dựa trên response này để hiển thị ra giao diện. Mong mọi người góp ý
Em cảm ơn anh ạ. Nhiều lúc em tìm hiểu MVC trên mạng cạc đọc nhiều càng lú mà bản thân không đủ chuyên môn để chọn lọc. Nhờ video anh mà em hiểu tường tận về mô hình này
Hay lắm anh ơi, Em xem nhiều lắm thấy anh tổ chức code hay thật á!, Bài giảng này cũng khá là dễ hiểu luôn, chung quy là anh giảng được lắm luôn, Em chỉ vướng mấy cái chỗ tổ chức các file rồi require nó, nhìn thì dễ hiểu á, mà thuần thục thì rất căng, chắc tý em lại xem thêm 2 3 lần rồi thuần thục cách tổ chức code như này, Mãi ủng hộ anh Sơn!^^ 💖💖💖
Khi là người mới có thể một số bạn sẽ thấy hơi rối. Nhưng anh tổ chức theo cách làm một project thật sự. Cuối khóa anh sẽ refactor lại rõ ràng hơn nữa nhé. Cảm ơn em!
em xem clip của a xong xem thử một kênh khác dạy nodejs, họ lại viết toàn function trong controller xong exports mấy cái func đó ra chứ ko viết theo cấu trúc class. Chẳng biết hiện giờ bên ngoài các cty họ viết chuẩn theo cách nào nữa hoặc là học cả hai sẽ là tốt hơn.
Viết theo function phổ biến hơn nha em. Không cần thiết phải viết thành class. Trong JS nó là prototype base, cú pháp class bản chất vẫn là object prototype thôi em nhé.
Video này cách lúc e comment cũng 1 năm rồi. Em thấy xử lý route của anh hơi phức tạp :). Phần index.js chỉ cần dùng app.use('/', rootRoutes), còn rootRoutes thì định nghĩa như sau: const rootRoutes = express.Router() rootRoutes.[get/post/put/delete]('path', controller) ... Nếu chia ra nhiều model thì: rootRoutes.use('/user', userController) rootRoutes.use('/item', itemController) ... Với userController...là instance của Router Nhìn nó sẽ phân tầng hơn :)
cái chỗ routes ở trang news lúc chưa tạo ra hàm show á anh thì em có nhập thêm ở trên param từ khác nhưng nó trả về là cannot get /news/abc chứ nó k có trả lại em trang news và khi em thêm router có slug vào thì nó trả em hẳng news detail luôn dù em chưa nhập thêm param sau news/
Anh cho em hỏi phần ":slug" anh tạo đường dẫn cho nó là "/:slug" nhưng khi anh gõ trên google là "/hoc-ve-nodejs" thì nó vẫn matches, em có thử tạo ra 2 cái là :slug1 và :slug2 thì khi em gõ trên google thì dù em gõ đường dẫn là gì thì nó vẫn matches vào cái thứ nhất, anh có thể giải thích cho em vấn đề đó dc không em tìm trên expressjs.com nhưng không thấy và khi người ta muốn tạo nhiều đường dẫn như thế ví dụ như /course/html, /course/css, /course/js thì phải làm saoa ạ
có ai bị lỗi chổ slug ko?, mình kiểm tra lại mấy lần rồi ...dù có truyền hay ko truyền, tham số "slug" trên URL nhưng nó vẫn chạy vào action trên cùng trong folder routes .Ver node 16.
Mn cho em hỏi chút ạ. Trong bài em thấy anh Sơn export an instance mà không export class. Theo em tìm hiểu thì là nếu export class thì sẽ không lấy được nội dung bên trong của class khi import sang file khác. Phải export an instance (object) mới lấy được nội dung bên trong. Vậy tại sao react class component lại export class mà không cần export an instance ạ?
À anh comment theo từng task anh làm thôi. Còn push thì đương nhiên rồi, anh sẽ push lên khi cảm thấy cần thiết. Còn khóa này ko học về git nên anh ko có focus đề cập tới git nha em.
bạn xem lại chỗ index.js trong routes. trong function chỉ có 2 dòng này thôi app.use('/news', newsRouter) app.use('/', siteRouter) . nếu thêm app.use('/search', newsRouter) nữa thì là bị lỗi đó
because it violates the following Content Security Policy directive: "default-src 'none'". Note that 'font-src' was not explicitly set, so 'default-src' is used as a fallback. báo lỗi vi trình duyệt ai biết sửa k ạ :((
Mình khuyên các bạn mới học lập trình nên xem lại series này nhiều lần. Mỗi lần xem lại hiểu thêm một chút.
Video này chứa rất nhiều kiến thức. Các bạn hãy xem lại cho tới khi hiểu + note lại kiến thức cho chắc kiến thức.
Dạy tận tâm thì F8 là nhất luôn rồi!! Xin cảm ơn nhiều...
Nhắc lại luồng trong mô hình MVC: browser sẽ gửi request đến web server thông qua http protocol, sau đó sẽ đến phần route để math cái path và xem method của request là gì?, hành động trên được xem như action và action này được dispatcher chuyển qua function handler(tách ra thành controller), sau đó controller sẽ tương tác với model và view và trả về web server, web server trả về browser thông qua response và browser sẽ dựa trên response này để hiển thị ra giao diện.
Mong mọi người góp ý
t tưởng là mô hình client server ._.
Nhiều cái cứ tưởng biết rồi mà nghe xong thấy hiểu rõ hơn hẳn. Cực kì hữu ích luôn
Em cảm ơn anh ạ. Nhiều lúc em tìm hiểu MVC trên mạng cạc đọc nhiều càng lú mà bản thân không đủ chuyên môn để chọn lọc. Nhờ video anh mà em hiểu tường tận về mô hình này
Hay lắm anh ơi, Em xem nhiều lắm thấy anh tổ chức code hay thật á!, Bài giảng này cũng khá là dễ hiểu luôn, chung quy là anh giảng được lắm luôn, Em chỉ vướng mấy cái chỗ tổ chức các file rồi require nó, nhìn thì dễ hiểu á, mà thuần thục thì rất căng, chắc tý em lại xem thêm 2 3 lần rồi thuần thục cách tổ chức code như này, Mãi ủng hộ anh Sơn!^^ 💖💖💖
Hay quá anh. Cách xây dựng MVC của anh dễ hiểu.
Em cảm ơn anh nhiều nha!
:D Em đi làm được 1 năm rồi mà nhiều chỗ giờ em xem video của anh em mới hiểu rõ hơn, cảm ơn anh nhiều ạ.
Chúc anh lúc nào cũng mạnh khoẻ ạ. Cộng đồng cần những người như anh ạ.
thật sự rất dễ hiểu ạ, dù không phải xem là nhớ ngay nhưng cứ xem hết là hiểu
anh dạy rất có tâm, ngày nào cũng vào hóng video của a :(
33:17 Nghe câu "khá là dễ thôi" của anh mà gớt nước mắt :((
Mr Son awesome... F8 share is the best... F8
Hay quá. Hóng video của ad qua
em thấy a tổ chức code rất dễ hiểu. cảm ơn anh ạ. chúc anh mạnh khỏe
Khi là người mới có thể một số bạn sẽ thấy hơi rối. Nhưng anh tổ chức theo cách làm một project thật sự. Cuối khóa anh sẽ refactor lại rõ ràng hơn nữa nhé.
Cảm ơn em!
Anh ra video chăm chỉ quá, ngàn like cho anh.
anh giải thích rất dễ hiểu và chi tiết!
Hay quá. Cảm ơn
đã hiểu về mô hình rồi ạ
41:28 Ôn tập
Thề ko bỏ 1 video nào kể cả đi làm r vẫn thích series của anh Sơn :3 từ đợt ở kênh sayakota
Hay quá a ơi, lâu lâu xem lại vẫn thấy hay :v
Bài này hay thực sự nhưng nên nghe lại vài lần
Cảm ơn anh rất nhiều ạ
em xem clip của a xong xem thử một kênh khác dạy nodejs, họ lại viết toàn function trong controller xong exports mấy cái func đó ra chứ ko viết theo cấu trúc class. Chẳng biết hiện giờ bên ngoài các cty họ viết chuẩn theo cách nào nữa hoặc là học cả hai sẽ là tốt hơn.
Viết theo function phổ biến hơn nha em. Không cần thiết phải viết thành class. Trong JS nó là prototype base, cú pháp class bản chất vẫn là object prototype thôi em nhé.
Video này cách lúc e comment cũng 1 năm rồi. Em thấy xử lý route của anh hơi phức tạp :). Phần index.js chỉ cần dùng app.use('/', rootRoutes), còn rootRoutes thì định nghĩa như sau:
const rootRoutes = express.Router()
rootRoutes.[get/post/put/delete]('path', controller)
...
Nếu chia ra nhiều model thì:
rootRoutes.use('/user', userController)
rootRoutes.use('/item', itemController)
...
Với userController...là instance của Router
Nhìn nó sẽ phân tầng hơn :)
là sao vậy ạ ?
Bài này phải xem vài lần mới hiểu nổi
bài này đúng kiểu phải xem đi xem lại xem lên xem xuống
31:24 luồng
14:50 nói cái hiểu ngay sếp à
Dạy thêm git nữa thì tốt quá a ạ
cái chỗ routes ở trang news lúc chưa tạo ra hàm show á anh thì em có nhập thêm ở trên param từ khác nhưng nó trả về là cannot get /news/abc chứ nó k có trả lại em trang news và khi em thêm router có slug vào thì nó trả em hẳng news detail luôn dù em chưa nhập thêm param sau news/
lú luôn
cho em hỏi là nếu sử dụng .use thì nó sẽ làm sao phân biệt được GET hay POST, ... ạ
dùng cái Express application generator có ổn không a nhỉ ?
a cho em hỏi là dùng app.use () hay router.use() thì làm sao biết được nó nhận phương thức Get hay Post ạ?
Trong route của từng phần thì thay use bằng post hay get là được
vậy là trong thực tế khi code node js cũng phải tạo thủ công cấu trúc thư mục như kia à anh
Lưu sẵn cấu trúc v mà băm thôi
1:57AM 16/12/2023
GOOD
Vậy phương thức post mình viết bên controller kiểu gì ạ
NÀy cs link github k a
A ơi, thành phần dispatcher trong mô hình này
Có tác dụng tương đương với câu lệnh dưới đây của php ko?
file_exist($path);
trong khóa này có restfullAPI ko nhỉ :(
tại sao controller phải đưa method vào class vậy anh ?
e thấy nó static mà sao k export nó ra nhu function bth luon ?
Anh ơi, a share link repo trên github vào phần mô tả được không ạ
Anh cho em hỏi phần ":slug" anh tạo đường dẫn cho nó là "/:slug" nhưng khi anh gõ trên google là "/hoc-ve-nodejs" thì nó vẫn matches, em có thử tạo ra 2 cái là :slug1 và :slug2 thì khi em gõ trên google thì dù em gõ đường dẫn là gì thì nó vẫn matches vào cái thứ nhất, anh có thể giải thích cho em vấn đề đó dc không em tìm trên expressjs.com nhưng không thấy và khi người ta muốn tạo nhiều đường dẫn như thế ví dụ như /course/html, /course/css, /course/js thì phải làm saoa ạ
có ai bị lỗi chổ slug ko?, mình kiểm tra lại mấy lần rồi ...dù có truyền hay ko truyền, tham số "slug" trên URL nhưng nó vẫn chạy vào action trên cùng trong folder routes .Ver node 16.
from with love ICTU
xem lại lần 3
40:38 sao :slug mà chuyển qua kia chỉ/search v mn, ko có :
Mn cho em hỏi chút ạ.
Trong bài em thấy anh Sơn export an instance mà không export class.
Theo em tìm hiểu thì là nếu export class thì sẽ không lấy được nội dung bên trong của class khi import sang file khác. Phải export an instance (object) mới lấy được nội dung bên trong.
Vậy tại sao react class component lại export class mà không cần export an instance ạ?
Export 1 class thì muốn có 1 instance hay gọi là object thì phải khai báo với keyword new nhé vẫn đc chứ sao k lấy đc ND bên trong
anh ơi lúc commit code: dùng 2 dòng git add vs git commit thì file code trên github vẫn thế, phải ghi thêm git push nữa chứ anh?
À anh comment theo từng task anh làm thôi. Còn push thì đương nhiên rồi, anh sẽ push lên khi cảm thấy cần thiết. Còn khóa này ko học về git nên anh ko có focus đề cập tới git nha em.
extension anh dùng để dịch trực tiếp là gì vậy anh
Ơ kìa người anh em:))
@@huyphantien9114 =)) ae mình cùng chí hướng thật =)) đúng là hảo huynh đệ
@@uctranngoc8420 đoán xem có ai ở đây nữa
phim tat copy file la ntn anh son nhi
32:58 sao chỗ này gọi newsController.index mà ko phải là newsController.index(req,res) vậy mọi người?
Vì cái NewsControllers kia đã xử lý phần req, res rồi. Nên khi truyền vào đó thì chỉ cần gọi lại NewsControllers + với cái index của NewsControllers
MN cho em hỏi app.listien(port) createServer(...).listien(port) có gì khác nhau với ạ?
viết mấy cái route thôi mà mệt thật sự, bên laravel nó tự làm hết luôn
Ad ơi, ad thử làm 1 dạng video code full từ front end to back end 1 trang web đầy đủ tính năng login, form, ... dc ko ạ . Tks ad ạ.
Gần đây hot video kiểu này hay sao ý nhỉ?
@@F8VNOfficial a lam nhu vay thi tot qua a.
đoạn 31 đến 32 rối vãi ra mà a còn đi nhanh
có nút tua chậm mà bạn
mn có git phần này không , cho mình xin với ạ
có ai bị lỗi làm như a sơn mà phần search nó không chạy không ạ
bạn xem lại chỗ index.js trong routes. trong function chỉ có 2 dòng này thôi app.use('/news', newsRouter)
app.use('/', siteRouter) . nếu thêm app.use('/search', newsRouter) nữa thì là bị lỗi đó
@@cathome3518 bạn ơi, mình cũng lỗi, ko ra trang news nữa
because it violates the following Content Security Policy directive: "default-src 'none'". Note that 'font-src' was not explicitly set, so 'default-src' is used as a fallback.
báo lỗi vi trình duyệt ai biết sửa k ạ :((
Mình làm theo tới đoạn function route(app) thì lỗi app.use('/news', newsRouter); , ai giúp mình với
ở chỗ const router khai báo = express.Router(); là dc