Sự khác nhau giữa app.all()
và app.use()
là gì?Sự khác biệt giữa app.all và app.use là gì?
Trả lời
app.all()
sẽ được gọi khi một URI cụ thể được yêu cầu với bất kỳ loại phương thức yêu cầu (ví dụ như GET, POST, PUT, hoặc DELETE.)
app.use()
mặt khác là hữu ích hơn đối với bất kỳ trung gian bạn có thể có kể từ khi nó "gắn kết" vào một tiền tố đường dẫn, và sẽ được gọi bất cứ lúc nào một URI theo tuyến đường đó được yêu cầu. Vì vậy, ví dụ app.use('admin/', isAuthorized)
có thể là một phần của phần mềm trung gian sẽ đảm bảo mọi URI được truy cập trong "admin /" (chẳng hạn như "admin/settings" hoặc "admin/bing/bang") đang được yêu cầu chỉ bởi người dùng được ủy quyền. Nếu bạn không cung cấp đường dẫn gắn kết, mặc định là sử dụng URI gốc "/".
Bạn có thể làm điều tương tự với app.all()
bằng cách sử dụng một glob (ví dụ app.all('admin/*', isAuthorized)
), nhưng app.use()
hiện thêm bước tước núi URI từ req.path
mà đối với một số trung gian là khá hữu ích.
Tài liệu ([tất cả] (http://expressjs.com/api.html#app.all), [sử dụng] (http://expressjs.com/api.html#app.use)) là khá tiết lộ về cả hai. Chính xác thì bạn đang nhầm lẫn về điều gì? –