MongoDB Event Storage for node-cqrs
Usage
npm install node-cqrs node-cqrs-mongo --save
A configured instance of MongoEventStorage must be passed in as "storage" option to the EventStore constructor:
const { EventStore } = require('node-cqrs');
const MongoEventStorage = require('node-cqrs-mongo');
const storage = new MongoEventStorage({
connectionString: 'mongodb://username:password@localhost:27017/db',
eventsCollection: 'events'
});
const eventStore = new EventStore({ storage });
eventStore.commit([
{ aggregateId: 1, aggregateVersion: 1, type: 'somethingHappened', payload: {} }
]);
The same, using DI container:
const { EventStore, Container } = require('node-cqrs');
const MongoEventStorage = require('node-cqrs-mongo');
// create container instance
const container = new Container();
// register MongoEventStorage as "storage"
container.registerInstance({ connectionString: 'mongodb://username:password@localhost:27017/db' }, 'mongoConfig');
container.register(MongoEventStorage, 'storage');
// register EventStore as "eventStore"
container.register(EventStore, 'eventStore');
// commit events to eventStore
container.eventStore.commit([
{ aggregateId: 1, aggregateVersion: 1, type: 'somethingHappened', payload: {} }
]);