Próbuję uruchomić niektóre instrukcje wstawiania po zaktualizowaniu kolekcji. Na przykład, jeśli użytkownik doda położenie dokumentu osadzonego do dokumentu użytkownika, chciałbym również wstawić ten osadzony dokument do oddzielnego zbioru Lokalizacja. Czy istnieje sposób, aby to zrobić po stronie serwera, aby operacja była gwarantowana?Jak zmienić stronę serwera przed zapisaniem w Meteoru
Odpowiedz
trzeba by zrobić to w sposób .. można zachować opóźnienia kompensacji poprzez wdrożenie metody po stronie klienta niedopałek:
wywoływanie metod na kliencie definiuje funkcje pośredniczące związane z metod serwerowej Takie samo imię. Jeśli nie chcesz, nie musisz definiować kodu pośredniczącego dla metody . W takim przypadku wywołania metod są tylko , podobnie jak zdalne wywołania procedur w innych systemach, a będziesz musiał czekać dla wyników z serwera.
Jeśli zdefiniuj kod pośredniczący, gdy klient wywoła metodę serwera, będzie również uruchamiał swój kod pośredniczący równolegle. Na kliencie zwracana wartość kodu pośredniego jest ignorowana. Stuby są uruchamiane ze względu na swoje skutki uboczne: są one przeznaczone do symulacji wyniku działania metody serwera, ale nie czekając na opóźnienie w podróży w obie strony. Jeśli kod pośredniczący zgłasza wyjątek , zostanie zalogowany do konsoli.
zobaczyć moją Meteor przykładowe skrótowe tutaj: https://stackoverflow.com/a/13145432/1029644
Czy masz przykład, w jaki sposób zaimplementować te stubs? Patrzę na kilka przykładów na StackOverflow takich jak [ten jeden] (http://stackoverflow.com/questions/12231712/when-to-use-meteor-methods-and-utilizing-stubs), ale wciąż jestem trochę zdezorientowany jak to wdrożyć. – HGandhi
Jeśli jesteś gotów użyć kodu napisałem (https://gist.github.com/matb33/5258260), można podłączyć w taki sposób:
EDIT: Kod jest obecnie częścią projektu w https://github.com/matb33/meteor-collection-hooks
var test = new Meteor.Collection("test");
if (Meteor.isServer) {
test.before("insert", function (userId, doc) {
doc.created = doc.created || Date.now();
});
test.before("update", function (userId, selector, modifier, options) {
if (!modifier.$set) modifier.$set = {};
modifier.$set.modified = Date.now();
});
test.after("update", function (userId, selector, modifier, options, previous) {
doSomething();
});
}
- 1. Mongoose ODM zmienić zmienne przed zapisaniem
- 2. przed zapisaniem w Yii2
- 3. Jak mogę zmienić wartość pola formularza Django przed zapisaniem?
- 4. Laravel wygenerować ślimak przed zapisaniem
- 5. walidacji inlines przed zapisaniem modelu
- 6. Android Obróć zdjęcie przed zapisaniem
- 7. Excel VBA - Uruchom makro przed zapisaniem
- 8. Usuń cały poprzedni tekst przed zapisaniem
- 9. w Entity Framework, jak zadzwonić metodę na Jednostkę przed zapisaniem
- 10. Jak zabezpieczyć Xcode 8 przed zapisaniem "zespołu programistów" w .pbxproj?
- 11. Jak usunąć końcowe spacje przed każdym zapisaniem w Cloud9?
- 12. dodać dane do obiektu ModelForm przed zapisaniem
- 13. backbone.js ustawić wywołanie zwrotne przed zapisaniem?
- 14. Spinacz - zmiana nazwy pliku przed zapisaniem
- 15. Trasowanie w Meteoru
- 16. Jak mogę zmienić stronę początkową?
- 17. Zmienić stronę w aplikacji WP7?
- 18. zachowanie cursor.observe ({added}) w Meteoru
- 19. Konwertowanie ciągu na datę przed zapisaniem z Railsami
- 20. Jak zmienić domyślną stronę indeksu w Apache?
- 21. Otwórz plik tymczasowy przed zapisaniem go w modelu Railsowym
- 22. Skąd mam wiedzieć, id id przed zapisaniem obiektu w jpa
- 23. Ustal, czy rekord "jest nowy" w wywołaniu zwrotnym przed zapisaniem
- 24. Wielojęzyczny w Meteoru
- 25. Ruby on Rails has_many through obiektów asocjacyjnych przed zapisaniem
- 26. Ustawienia boczne klienta meteoru
- 27. Skonfiguruj stronę serwera Powiadomienia Push
- 28. Jak zmienić stronę startową na aplikacji WP7?
- 29. Jak zmienić stronę z poziomu JavaScriptu
- 30. Podgląd formularza Django - Dodawanie użytkownika do formularza przed zapisaniem
Zdaję sobie sprawę, że można wywołać po stronie serwera metodę do zrobienia zarówno aktualizację i wstawić, ale to miałoby negatywny skutek usunięcia z kompensacją latencji co rozumiem. – HGandhi