it-swarm.com.ru

Есть ли хороший объект для отображения Amazons DynamodB (через AWS SDK), который можно использовать в nodejs?

Может быть, вопрос не относится к DynamoDB, потому что это не Relational Db. Однако я ищу хороший объектный маппер, который можно использовать в nodejs и aws sdk для сопоставления существующих классов модели с таблицами DynamoDB. У кого-нибудь есть опыт решения этой проблемы/вопроса, или вы использовали такой модуль/библиотеку?

26
Fazi

Если вы ищете схему: 

Если вы ищете что-то, чтобы бросить объекты JavaScript (даже круговые диаграммы) в:

у dyngodb есть экспериментальная поддержка полнотекстового поиска и транзакций тоже.

Оба основаны на aws-sdk.

27
aaaristo

Также стоит обратить внимание на простые маршаллеры, которые просто переводят между форматом DynamoDB и обычными объектами js или JSON.

DynamoDb-Data-Types
https://github.com/kayomarz/dynamodb-data-types
https://www.npmjs.com/package/dynamodb-data-types

«Эта утилита помогает представлять типы данных AWS DynamoDb. Она отображает (маршаллы) данные JavaScript в формат, необходимый для DynamoDb».

DynamoDB-маршалер
https://github.com/CascadeEnergy/dynamoDb-marshalerhttps://www.npmjs.com/package/dynamodb-marshaler

«Переводит вменяемые объекты JavaScript (и JSON) в формат DynamoDb и наоборот». [не поддерживает тип B.]

Обновление 2016-06:
Только что обнаружил, что AWS SDK теперь делает это для вас. Их документация только частично преобразована, так что, я думаю, это недавнее дополнение. Читайте о это здесь .

Но эти маршаллеры все еще полезны, потому что есть обстоятельства, когда вы не можете использовать новый клиент документа, например. при обработке потока DynamoDB.

6
Tom

Вы также можете попробовать: https://dynamoosejs.com/ . Он снова вдохновлен мангустом.

2
Hexy

После просмотра всех постов, на которые я попал https://github.com/awspilot/dynamodb-oop

Он не скрывает API, но вместо этого просто оборачивает его в хороший, плавный способ даже с обещаниями, и вы внедряете свою версию aws-sdk. Он похож на DynamodBatData-типов, но также оборачивает методы (не только типы данных).

Дополнительный бонус, который есть у того же автора https://github.com/awspilot/dynamodb-sql Не использовал упаковщик SQL, но я вижу, как некоторые люди предпочитают это. 

Dynamoose явно вдохновлен mongoose и является хорошим выбором, если у вас есть четко определенная схема и/или вы хотите быть абстрагированными от деталей DynamoDB.

1
FuryVII

Если вы используете TypeScript, Dynamo-Easy может быть хорошим вариантом. Просто добавьте несколько декораторов к вашей модели и начните использовать ее.

import { Model, PartitionKey, DynamoStore } from '@shiftcoders/dynamo-easy'

@Model()
export class Person {
  @PartitionKey()
  id: string
  name: string
  yearOfBirth: number
}

const personStore = new DynamoStore(Person)

personStore
  .scan()
  .whereAttribute('yearOfBirth').equals(1958)
  .exec()
  .then(res => console.log('ALL items with yearOfBirth == 1958', res))

Он использует AWS DynamoDB SDK, но заботится о сопоставлении типов JS и DynamoDB и предоставляет простой в использовании свободный API.

полное раскрытие: я один из авторов этой библиотеки

1
wittwermic

Вы видели dynasaur ? Кажется, это то, что вы ищете, но я сам этим не пользовался. Также есть dynamicodb-data-types , который не является ORM, но облегчает преобразование в/из стандартных объектов JavaScript.

0
David Yanacek