1.4.0 • Published 2 years ago

moleculer-store v1.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Moleculer logo

moleculer-store NPM version

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

ActionRESTparametersreturnsdescription
getGET /:keykeyvalue | undefinedfinds a value by key, returns undefined if no matching key is found
setPOST /:keykey, valuevaluesets and returns a value for existing and non-existing keys (think of it as an 'UPSERT' operation)
updatePUT /:keykey, valuekey, valuesets and returns a value for ONLY existing keys, throws an error if key doesn't exist
deleteDELETE /:keykeybooleandeletes a single entry; returns a true if delete was successful (there is a matching key), otherwise retruns false
existskeybooleanchecks if a key exists in a map
keyspattern?key []returns a list of found keys, takes an optional pattern to match keys by (pattern defaults to '*')
valuespattern?value []returns a list of found values, takes an optional pattern to match keys' values by (pattern defaults to '*')
clearDELETE /voidclears a map
sizenumberreturns 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.