Forse la domanda non si applica a dynamoDB perché non è Db relazionale. Tuttavia, sto cercando un buon object mapper che può essere utilizzato in nodejs e aws sdk per mappare le classi di modelli esistenti alle tabelle dynamoDB. Qualcuno ha esperienza con questo problema/domanda, o hai usato un tale modulo/libreria?Esiste un buon object mapper per Amazons dynamodb (attraverso aws sdk) che può essere utilizzato in nodejs?
risposta
Hai visto dynasaur? Sembra essere il tipo di cosa che stai cercando, ma non l'ho mai usato io. C'è anche dynamodb-data-types che non è un ORM, ma rende facile la conversione da/agli oggetti JavaScript standard.
Se siete alla ricerca di schema:
- https://github.com/clarkie/dynogels (ben supportato forked from vogels which has been abandoned)
- https://github.com/automategreen/dynamoose (ispirato Mongoose)
Se siete alla ricerca di qualcosa da lanciare oggetti JavaScript (anche grafici circolari) a:
- https://github.com/aaaristo/dyngodb (alpha)
- https://github.com/aaaristo/angular-gson-express-dyngodb
dyngodb ha il supporto sperimentale per la ricerca full-text e transactions troppo.
Entrambi sono basati su aws-sdk.
Vale anche la pena considerare semplici gestori di marshalling, che si limitano a tradurre tra il formato dynamoDB e gli oggetti js regolari o JSON.
DynamoDB-tipi di dati
https://github.com/kayomarz/dynamodb-data-types
https://www.npmjs.com/package/dynamodb-data-types
"Questa utility aiuta rappresentano i tipi di dati AWS DynamoDB. Esso mappa (Marshalls) i dati JavaScript nel formato richiesto dal DynamoDB."
DynamoDB-marshaler
https://github.com/CascadeEnergy/dynamoDb-marshaler https://www.npmjs.com/package/dynamodb-marshaler
"traduce oggetti sane Javascript (e JSON) in formato DynamoDB e viceversa." [Non supporta il tipo B.]
Aggiornamento 2016-06:
appena scoperto che l'AWS SDK ora lo fa per voi. La loro documentazione è solo parzialmente convertita quindi immagino che questa sia un'aggiunta recente. Maggiori informazioni su it here.
Ma questi marshaller sono comunque utili perché ci sono circostanze in cui non è possibile utilizzare il nuovo client di documento, ad es. durante l'elaborazione di un flusso dynamoDB.
Si potrebbe anche provare: https://dynamoosejs.com/. È ispirato ancora da Mangusta.
Dopo guardando oltre tutti i post che sbarcarono sulla https://github.com/awspilot/dynamodb-oop
Non nasconde l'API, ma invece solo lo avvolge in un modo carino, fluente con promesse ancora e si inietta la versione del AWS-sdk. È simile ai dynamodb-data-types ma avvolge anche i metodi (non solo i tipi di dati).
Bonus extra, lo stesso autore ha Non ho usato il wrapper sql ma posso vedere come alcune persone potrebbero preferirlo.
Dynamoose è ovviamente ispirato da mangusta ed è una buona scelta se si dispone di uno schema ben definito e/o si desidera essere astratti dai dettagli di DynamoDB.
Grazie per le vostre risposte. Sto usando gli stream dynamoDB e attualmente devono essere trasformati in oggetti javascript o JSON quando attivano le mie funzioni Lambda. – Andres