Kilka pytań, na które nie mogę znaleźć odpowiedzi w dokumentacji.Wpisy Strongloop Nie znaleziono wielu metod pomocniczych.
Próbuję uzyskać strukturę tak:
Node:
id: '1sdf12asd123',
name: 'node1',
history:
[ ts: 234234234234,
data: { 'foo': 'bar' }
],
...
więc każdy indywidualny węzeł ma wiele elementów historii. I chcę mieć możliwość dodania do tego nowych danych, bez nadpisywania czegokolwiek.
Teraz nie chcę przechowywać wszystko pod każdym węźle, ale raczej w oddzielnym dokumencie, więc myślę embedsMany byłby odpowiedni do tego:
{
"name": "Node",
"plural": "Nodes",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string"
}
},
"validations": [],
"relations": {
"history": {
"type": "embedsMany",
"model": "History",
"foreignKey": "HistoryId"
}
},
"acls": [],
"methods": {}
}
Więc historia będzie po prostu:
{
"name": "History",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"ts": {
"type": "Date"
},
"data": {
"type": "Object"
}
},
"validations": [],
"relations": {
"node": {
"type": "belongsTo",
"model": "Node",
"foreignKey": "NodeId"
}
},
"acls": [],
"methods": {}
}
Nie jestem pewien, czy część foreignKey jest właściwa, ale wypróbowałem wiele różnych kombinacji, a ta wydaje się logiczna.
Model historii nie jest publiczny, więc nie jest wyeksponowany jako punkt końcowy. I chcę wykorzystać relacje tak bardzo, jak to możliwe, zamiast mieć oddzielny punkt końcowy.
Głównym problemem tutaj jest chciałbym użyć Nodes.history.add()
jak opisano here.
Ale próbowałem o różnych metodach od Remote methods
do Operation Hooks
, ale nie mogę znaleźć wymienionych metod pomocnika. Nie ma żadnego przykładu kodu, który można by znaleźć na ten temat.
Częściowo myślę, że dzieje się tak dlatego, że dokumentacja jest czasami niezbyt wyraźna lub zakłada pewien stopień wiedzy na temat działania innych frameworków API. I przeczytałem o każdej stronie dokumentacji, którą można znaleźć. (Jednym z przykładów jest Core concepts
stronę linki do nieaktualnych Model hooks
strony).
Co chciałbym wiedzieć:
- Czy pomysł wykorzystania
.add()
prawo do pchania danych na model i ma pętli zwrotnej zarządzaj tym miejscem, w którym powinien on być przechowywany, więc gdy zapytam węzeł, otrzymam wszystkie elementyhistory
, chyba że zapobiegnę temu po stronie serwera (ponieważ nie chciałbym, aby każde żądanie dla samych danych węzła było potrzebne, - dobrym pomysłem jest utworzenie oddzielnego dokumentu dla każdego elementu historii, z danym węzłem, lub lepszym, aby utworzyć jeden element historii na węzeł i zapisać histo ry w nich? Głównym problemem dla mnie jest, Jak mogę
push
danych, bez nadpisywania czegokolwiek, i być może z wykorzystaniemtimeStamp
jako klucz? - Czy model
History
musi wiedzieć o ich związku zNodes
zBelongsTo
, czy może to być niepomny i nadal ma w sobie każdy element historii?
Potrzebuję być w stanie '.add' multiple historyItems na raz. – TrySpace
Nic nie stoi na przeszkodzie, aby to zrobić. Wierzę, że to natywnie obsługiwane przez model Persisted. Zobacz https://apidocs.strongloop.com/loopback/#persistedmodel-create * Opcjonalny argument danych. Może to być pojedyncza instancja modelu lub tablica instancji. * Zmieniono mój post, zobacz, czy to rozwiąże problem. – Overdrivr
Problem z tym, że nie chcę "tworzyć" 'węzła', to już jest, więc muszę go użyć w' findById', a następnie dodać coś ... – TrySpace