Tôi đang tạo ứng dụng dựa trên dịch vụ được gắn đế. Một số dịch vụ sẽ được viết bằng thiên thạch, một số sẽ không.Gọi phương thức giao diện người dùng từ ứng dụng thiên thạch bên ngoài
Một trong các dịch vụ là dịch vụ đăng ký, nơi người dùng có thể đăng ký nền tảng.
Khi làm microservices, bình thường tôi làm như sau:
var MyService = DDP.connect(service_url);
var MyOtherService = DDP.connect(other_service_url);
var RegistrationService = DDP.connect(registration_service_url);
Những gì tôi muốn làm là sử dụng phương pháp loginWithFacebook
. Vấn đề là sử dụng Meteor.loginWithFacebook
trên giao diện người dùng sẽ gọi các phương thức phụ trợ của nó trên máy chủ giao diện người dùng chính.
Tuy nhiên, tôi muốn gọi các phương thức phụ trợ của nó trên máy chủ RegistrationService (trong đó có các gói có liên quan). Lý do là vì tôi đang sử dụng móc Accounts.onCreateUser
để thực hiện các công cụ bổ sung và cũng bởi vì tôi muốn giữ dịch vụ đăng ký riêng biệt với giao diện người dùng.
Chỉ cần cho rõ ràng, mặc dù nó không phải là chính xác, hãy tưởng tượng tôi có điều này:
'click #facebook-login': function() {
Meteor.loginWithFacebook(data, callback)
}
Tuy nhiên, tôi muốn phương pháp loginWithFacebook
sử dụng các phương pháp server-side từ RegistrationService
khi gọi các client-side phương pháp .loginWithFacebook, vì vậy tôi thực sự muốn làm gì đó để tác động trong các cách sau:
'click #facebook-login': function() {
RegistrationService.loginWithFacebook(data, callback)
}
Bất kỳ giúp đỡ về vấn đề này sẽ được đánh giá rất nhiều. Cảm ơn bạn!
Vấn đề là khi tôi làm điều này, tôi nhận được một TypeError nói rằng "registrationServices.loginWithFacebook" là không xác định. Trên ứng dụng Meteor phụ trợ (đối với registrationServices), chỉ có một thư mục máy chủ và không có thư mục máy khách nào - đây có phải là vấn đề không? – user2205763
Không, trong trường hợp này, bạn không cần thư mục máy khách. Về cơ bản trong ví dụ của tôi, tôi gọi nó giống như một phương thức phía máy khách. Nó phải được gọi là phương thức phía máy chủ. Tôi sẽ cập nhật câu trả lời trong một chút với cú pháp tốt hơn nhưng về cơ bản bạn sẽ muốn sử dụng registrationService.call ('loginWithFacebook', ...); –
Có bạn đi, tôi đã cập nhật ví dụ để làm việc với phía máy chủ gọi tốt hơn một chút. Hãy cho tôi biết nó hoạt động ra sao. –