moleculer-store

1.4.0 • Public • Published

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

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.

Dependencies (1)

Dev Dependencies (12)

Package Sidebar

Install

npm i moleculer-store

Weekly Downloads

2

Version

1.4.0

License

MIT

Unpacked Size

22.7 kB

Total Files

22

Last publish

Collaborators

  • waddah-jd