moleculer-db-adapter-dynamodb

DynamoDB adapter for Moleculer DB service

Usage no npm install needed!

<script type="module">
  import moleculerDbAdapterDynamodb from 'https://cdn.skypack.dev/moleculer-db-adapter-dynamodb';
</script>

README

moleculer-db-adapter-dynamodb NPM version

DynamoDB adapter for Moleculer DB service with dynamodb.

Features

Install

npm install moleculer-db-adapter-dynamodb --save

You have to install additional packages for creating model:

npm install dynamodb --save

Usage

'use strict';

const { ServiceBroker } = require('moleculer');
const DbService = require('moleculer-db');
const DynamoAdapter = require('moleculer-db-adapter-dynamodb');
const dynamodb = require('dynamodb');
const Joi = require('joi');

const broker = new ServiceBroker();

// Create a dynamodb service for `post` entities
broker.createService({
  name: 'posts',
  mixins: [DbService],
  adapter: new DynamoAdapter({
  aws:{
    accessKeyId: '', // your id here
    secretAccessKey: '', // your key here
    region: '', // your region here
  }}),
  model: dynamodb.define('Post', {
  hashKey: "id",
  schema: {
    id: dynamodb.types.uuid(),
    title: Joi.string().required(),
    content: Joi.string().required(),
    votes: Joi.number(),
    }
  }),
});

broker
  .start()
  // Create a new post
  .then(() =>
    broker.call('posts.create', {
      title: 'My first post',
      content: 'Lorem ipsum...',
      votes: 0,
    }),
  )

  // Get all posts
  .then(() => broker.call('posts.find').then(console.log));

Options

Every constructor arguments are passed to the aws-sdk config . Read more about aws sdk.

Example with connection options

new DynamoAdapter({
  accessKeyId: '', // your id here
  secretAccessKey: '', // your key here
  region: '', // your region here
});

Test

npm test

In development with watching

npm run watch:test

License

The project is available under the MIT license.