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

sử dụng module.exports theo cách khác thường

Rất nhiều điều sai với điều này. Khái niệm này sẽ không hoạt động.

Đối với người mới bắt đầu, while(true) của bạn vòng lặp chặn vòng lặp sự kiện nên db không bao giờ có thể nhận được một giá trị để vòng lặp của bạn không bao giờ hoàn thành.

Khi hoạt động mạng trong kết nối hoàn tất, nó sẽ thêm một sự kiện vào hàng đợi sự kiện và lệnh gọi lại được liên kết với nó (và sau đó là lời hứa đã giải quyết) chỉ có thể chạy khi bạn trả lại quyền điều khiển cho vòng lặp sự kiện để sự kiện đó có thể được xử lý.

Nhưng, while(true) của bạn vòng lặp chặn vòng lặp sự kiện để không có sự kiện nào có thể được xử lý. Trừ khi bạn đang sử dụng await bên trong vòng lặp (cho phép các sự kiện khác chạy), bạn không thể sử dụng vòng lặp chờ như thế này trong node.js. Nó chỉ tạo ra một vòng lặp vô hạn.

Cho đến khi chúng ta có await hoạt động với khởi tạo mô-đun (đang được làm việc trên), bạn không thể xuất trực tiếp giá trị thu được một cách không đồng bộ.

Thay vào đó, bạn có thể xuất một lời hứa và người gọi phải sử dụng lời hứa để lấy db. Hoặc xuất một hàm trả về một lời hứa.

Thông tin thêm về các vấn đề với vòng lặp bận-đợi trong khi trong các câu trả lời khác sau:

Chờ cho đến khi flag =true

javascript - Điều gì sai với vòng lặp while này? vòng lặp không bao giờ kết thúc

Tại sao a vòng lặp while chặn vòng lặp sự kiện?




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để giải quyết hạn chế thiết kế này trong mongo db w.r.t về hiệu suất?

  2. truy vấn mongodb không có tên trường

  3. Nâng cấp trong Mongo DB và vấn đề Id

  4. Mongodb tổng hợp:chuyển đổi ngày sang múi giờ khác

  5. MongoDB $ strcasecmp