Câu trả lời ngắn
Cài đặt phiên bản mới nhất của mongodb.
Câu trả lời dài hơn một chút
Hãy chắc chắn rằng gói.json của bạn đang sử dụng phiên bản mới nhất của mongodb, sau đó xóa node_modules / mongodb và thực hiện cài đặt lại npm. Nếu bạn không sử dụng mongodb làm phụ thuộc trực tiếp, hãy thử tìm gói nào đang sử dụng mongdb. Tôi đã sử dụng:
find . -type f -name package.json | xargs grep mongodb
...
./sails-mongo/package.json: "mongodb": "1.4.26",
...
Vì vậy, tôi đã cập nhật ./sails-mongo/package.json thành:
"mongodb": "2.1.7",
Sau đó loại bỏ node_modules / mongodb và thực hiện cài đặt lại npm. Có vẻ tốt bây giờ.
Trả lời lâu hơn nữa
Tôi không thích cách sử dụng được đề xuất hiện tại
require('../browser_build/bson')
Kể từ khi xem ../browser_build/bson.js, tệp 4k + dòng, dường như cũng là một triển khai "không phải là bản địa". Vì vậy, mặc dù nó sẽ không đưa ra bất kỳ phàn nàn nào, nhưng nó vẫn "sử dụng phiên bản JS thuần túy", có nghĩa là hiệu suất chậm hơn.
Nhìn vào https://github.com/mongodb/js-bson/issues/145 và https://github.com/mongodb/js-bson/issues/165 , có vẻ như sự cố đã xảy ra do:
antoniofruci bình luận vào ngày 15 tháng 9 năm 2015
Tôi mới phát hiện ra rằng mã c ++ đã được chuyển ra 6 tháng trước và bây giờ nó là một phụ thuộc tùy chọn: bson-ext. Thật vậy, nếu bạn cài đặt phiên bản mới nhất thì không có lỗi xảy ra.
Vì vậy, tôi đã cố gắng loại bỏ toàn bộ node_modules và vẫn gặp lỗi tương tự. Và nhìn vào gói.json của node_modules / mongodb, phiên bản của nó vẫn là 1.4.26, không phải là 2.1.7 mới nhất.
Rõ ràng mongodb của tôi là một phần phụ thuộc của gói khác mà tôi đã cài đặt: sails-mongo. Sửa đổi gói.json của sails-mongo và làm lại cài đặt npm cuối cùng cũng giải quyết được vấn đề.