Wykonuję aplikację opartą na usługach dokowanych. Niektóre z usług będą napisane meteorytem, inne nie.Metody nakładania połączeń z aplikacji zewnętrznego meteoru
Jedną z usług jest usługa rejestracji, w której użytkownicy mogą zarejestrować się na platformie.
Podczas microservices, normalnie I wykonaj następujące czynności:
var MyService = DDP.connect(service_url);
var MyOtherService = DDP.connect(other_service_url);
var RegistrationService = DDP.connect(registration_service_url);
Co chcę zrobić jest użycie metody loginWithFacebook
. Problem polega na tym, że użycie na interfejsie Meteor.loginWithFacebook
wywoła metody backendu na głównym serwerze frontendowym.
Jednak chcę wywołać jego metody zaplecza na serwerze RegistrationService (który ma odpowiednie pakiety). Powodem jest to, że używam haka Accounts.onCreateUser
do robienia dodatkowych rzeczy, a także dlatego, że chcę, aby usługa rejestracji była oddzielona od frontendu.
Tak dla jasności, mimo że nie jest poprawne, wyobrazić mam to:
'click #facebook-login': function() {
Meteor.loginWithFacebook(data, callback)
}
Jednakże chcę metoda loginWithFacebook
używać metod po stronie serwera z RegistrationService
podczas wywoływania po stronie klienta metoda .loginWithFacebook, więc rzeczywiście chcą coś zrobić, aby efekt następujący:
'click #facebook-login': function() {
RegistrationService.loginWithFacebook(data, callback)
}
Każda pomoc w tej sprawie będzie bardzo mile widziane. Dziękuję Ci!
Problem polega na tym, że kiedy to zrobię, otrzymuję błąd TypeError mówiący, że "registrationServices.loginWithFacebook" jest niezdefiniowany. W aplikacji Meteor aplikacji backend (dla registrationServices) jest tylko folder serwera i nie ma folderu klienta - czy to może być problem? – user2205763
Nie, w tym przypadku nie powinieneś potrzebować folderu klienta. Zasadniczo w moim przykładzie nazwałem to jako metodę po stronie klienta. Musi być wywołana jako metoda po stronie serwera. Uaktualnię odpowiedź nieco lepiej, ale w zasadzie będziesz chciał użyć registrationService.call ("loginWithFacebook", ...); –
Proszę bardzo, zaktualizowałem ten przykład do pracy z połączeniem po stronie serwera nieco lepiej. Daj mi znać, jak to działa. –