Tôi có một loại kết nối chậm giữa máy chủ sao băng của tôi và cá thể mongodb từ xa. Tôi có thể bằng cách nào đó chờ đợi ở phía khách hàng và không đăng ký thuê bao cho đến khi máy chủ không được thiết lập kết nối với mongo?Cách đợi ở phía máy khách cho đến khi kết nối với mongo ở phía máy chủ đã sẵn sàng chưa?
Trả lời
Một cách nguyên thủy để làm điều này là lắng nghe sự thay đổi trong Meteor.userId() sử dụng Meteor.autorun. Nếu bạn có thể nhận được điều này, bạn sẽ biết rằng bạn đã kết nối với MongoDB. Nếu bạn không giao dịch với xác thực, thì bạn có thể tạo một phương thức ở phía máy chủ trả về một cái gì đó từ MongoDB. Khi nó trả về một cái gì đó, về thành công ở phía khách hàng, bạn có thể bắt đầu tất cả các đăng ký.
Vâng, đây là cách hữu ích và dễ dàng nhất để làm điều đó. –
Nên có một cách tốt hơn để kiểm tra sự sẵn sàng của Mongo nhưng tôi không nghĩ nó nằm trong danh sách ưu tiên cho Meteor ngay bây giờ. – HGandhi
Cách đáng tin cậy nhất để thực hiện việc này là thông qua lời gọi Meteor.call. Nếu bạn thực hiện điều này như một cuộc gọi đồng bộ (không gọi lại), máy khách sẽ đợi cho đến khi cuộc gọi kết thúc. Dưới đây là làm thế nào để làm điều đó không đồng bộ:
Meteor.call('isEverythingReady', param1,
function(error, result) {
if (error === undefined) {
Meteor.subscribe("mystuff");
Session.set("sess1", "whatever");
} else {
alert("There was an error during startup.");
}
});
và sau đó
if (Meteor.isServer) {
Meteor.methods({
isEverythingReady: function(param1) {
// can you connect to database?
return true;
}
}
}
Tôi đã có cùng một vấn đề trên một trong các dự án của tôi trong Meteor và câu trả lời này đã làm việc khi tôi đã đi qua tài liệu của họ và tìm ra bản thân mình làm thế nào để làm điều đó. Tuy nhiên, có lẽ bạn nên liệt kê cách thực hiện các chức năng (Thêm chỉnh sửa cho câu trả lời của bạn) – Charles
Không chắc chắn tôi hiểu nhận xét của bạn - chức năng gọi lại được hiển thị trong đoạn mã ở trên. –
Vâng vâng nhưng chức năng gọi không được liệt kê trên làm thế nào để tạo ra nó, khi tôi ban đầu đã cố gắng này tôi đã cố gắng để thực hiện một chức năng mặc định x() thay vì một meteor.methods(). Và đối với câu hỏi trong nhận xét, có bạn có thể kết nối với cơ sở dữ liệu theo cách đó. – Charles
- 1. Xác thực người dùng G + ở phía máy chủ, sau khi đăng nhập phía máy khách
- 2. CSS ở phía máy chủ?
- 3. Cách chuyển mảng từ phía máy chủ Asp.net sang hàm Javascript ở phía máy khách
- 4. xử lý ảnh ở phía máy khách
- 5. GWT I18N ở phía máy chủ
- 6. Cắt và tải lên hình ảnh ở phía máy khách mà không cần mã phía máy chủ liên quan đến
- 7. Cách lưu tệp ở phía máy khách bằng JavaScript?
- 8. Lỗi khi ghi nhật ký javascript ở phía máy khách
- 9. Phía máy khách bao gồm phía máy chủ bao gồm?
- 10. Ứng dụng với quản lý phiên ở phía máy chủ
- 11. Cách xác nhận đăng nhập ứng dụng Facebook phía máy khách từ phía máy chủ
- 12. Ruby: phía máy khách hoặc phía máy chủ?
- 13. Kiểm tra trạng thái đăng nhập ở phía máy khách
- 14. Nhận dữ liệu JSON ở phía máy chủ với Grails
- 15. Tắt tùy chọn X-Frame-Option ở phía máy khách
- 16. Cách dễ nhất để chạy javascript ở phía máy chủ
- 17. Lọc danh sách lớn ở phía máy khách
- 18. Các phương pháp hay nhất cho chuyển hướng phía máy khách so với phía máy chủ: Khi nào sử dụng?
- 19. GWT: Nhận các hằng số ở phía máy chủ
- 20. module.exports phía máy khách
- 21. Sử dụng phía máy chủ ít hơn (css preprocessor) hoặc phía máy khách
- 22. Chống lại bộ nhớ đệm phía máy khách ở Django
- 23. Ngôn ngữ phía máy khách
- 24. Thực thi tập lệnh treo ở phía máy khách
- 25. Thực hiện xác thực Facebook: Phía máy khách và phía máy chủ
- 26. JQuery jqgrid không phân loại ở phía máy khách
- 27. Có thể chạy jQuery ở phía máy chủ không?
- 28. Khi nào nên sử dụng phía máy khách hoặc phía máy chủ?
- 29. XSLT phía máy khách
- 30. Node.js: Tem phía máy khách v/s Templating phía máy chủ
Bạn nên sửa câu hỏi của bạn nếu bạn có một bản cập nhật. – knownasilya