DynamoDB adapter for Moleculer DB service with dynamodb.
npm install moleculer-db-adapter-dynamodb --save
You have to install additional packages for creating model:
npm install dynamodb --save
'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));
Every constructor arguments are passed to the aws-sdk
config . Read more about aws sdk.
new DynamoAdapter({
accessKeyId: '', // your id here
secretAccessKey: '', // your key here
region: '', // your region here
});
npm test
In development with watching
npm run watch:test
The project is available under the MIT license.