MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

tại sao tôi nhận được favicon.ico khi tôi đang sử dụng phương thức findOne cho các tuyến đường params nhanh?

Khi bạn truy cập một trang web (bất kỳ URL nào trên trang web đó), trình duyệt thường cũng sẽ gửi yêu cầu đến cùng một miền đó cho /favicon.ico vì vậy, hãy xem liệu trang web có cung cấp một biểu tượng để thể hiện trực quan của trang web hay không.

Vì bạn đang sử dụng tuyến đường cấp cao nhất được ký tự đại diện:

app.get('/:listRoute', ...)

Điều đó sẽ bị ảnh hưởng bởi yêu cầu cho /favicon.ico . Một số url khác mà bạn có thể cần phải chú ý khi được yêu cầu là:/robots.txt , /humans.txt , /sitemap.xml , /ads.txt .

Có một số cách để giải quyết vấn đề này:

  1. Trước tiên, tuyến ký tự đại diện của bạn có thể kiểm tra req.url hoặc req.params.listRoute để xem liệu đó có phải là thứ mà nó nên bỏ qua hay không.

  2. Bạn có thể đặt các tuyến đường cấp cao nhất khác mà bạn muốn tránh khỏi tuyến đường ký tự đại diện của mình ở vị trí trước tuyến đường này để chúng không kết thúc ở vị trí này.

  3. Không sử dụng tuyến ký tự đại diện cấp cao nhất. Thay vào đó, hãy sử dụng một cái gì đó như /list/:listRoute vì vậy nó sẽ không tự động khớp với bất kỳ yêu cầu http cấp cao nhất nào. Việc bạn sử dụng tuyến ký tự đại diện cấp cao nhất gây trở ngại cho các hoạt động sử dụng khác trong tương lai của trang web và có thể tạo ra khả năng tương thích ngược về sau khi bạn muốn thêm các tuyến cấp cao nhất khác vào trang web của mình. Hãy tưởng tượng nếu một lúc nào đó trong tương lai, bạn muốn thêm /contact hoặc /login hoặc /logout . Tất cả những thứ đó xung đột với /:listRoute .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hiển thị MongoDB trên Kubernetes với cụm bên ngoài StatefulSets

  2. mongoose thực thi thuộc tính duy nhất trên thuộc tính subocument

  3. Cơ sở dữ liệu Mongo lưu dữ liệu từ Bản đồ

  4. Làm thế nào để sử dụng các biến trong truy vấn MongoDB?

  5. Hồ bơi máy &hồ sơ đám mây cho MongoDB