moleculer-store
v1.4.0
Published
Key-Value storage service for Moleculer microservices with a built-in memory and Redis adapter
Downloads
5
Maintainers
Readme
moleculer-store
Moleculer Key-Value store, with built-in memory and Redis adapters
Install
$ npm install moleculer-store --save
A usage example
"use strict";
const { serviceMixin, Adapters } = require("moleculer-store");
const { MemoryAdapter } = Adapters;
const broker = new ServiceBroker();
broker.createService({
name: "numbers",
mixins: [serviceMixin],
adapter: new MemoryAdapter(),
});
broker
.start()
.then(async () => {
const currectCount = await broker.call("numbers.get", { key: "currentCount" });
})
.catch((err) => console.log("err", err));
Documentation
| Action | REST | parameters | returns | description | | :----: | :----------: | :--------: | :----------------: | ------------------------------------------------------------------------------------------------------------------ | | get | GET /:key | key | value | undefined | finds a value by key, returns undefined if no matching key is found | | set | POST /:key | key, value | value | sets and returns a value for existing and non-existing keys (think of it as an 'UPSERT' operation) | | update | PUT /:key | key, value | key, value | sets and returns a value for ONLY existing keys, throws an error if key doesn't exist | | delete | DELETE /:key | key | boolean | deletes a single entry; returns a true if delete was successful (there is a matching key), otherwise retruns false | | exists | | key | boolean | checks if a key exists in a map | | keys | | pattern? | key [] | returns a list of found keys, takes an optional pattern to match keys by (pattern defaults to '*') | | values | | pattern? | value [] | returns a list of found values, takes an optional pattern to match keys' values by (pattern defaults to '*') | | clear | DELETE / | | void | clears a map | | size | | | number | returns size of store |
key: string | number;
value: string | number | boolean | object;
pattern: string;
Usage with Redis adapter
const { RedisAdapter } = Adapters;
broker.createService({
adapter: new RedisAdapter(), // same as calling `new RedisAdapter({host: "127.0.0.1", port: 6379})`
mixins: [serviceMixin],
// .. other options
});
RedisAdapter
takes the same options as the used Node Redis client, for more information, check out Redis client documentation
License
The project is available under the MIT license.