Socket
Socket
Sign inDemoInstall

moleculer-db-adapter-cosmos

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

moleculer-db-adapter-cosmos

Azure CosmosDB SQL native adapter for Moleculer DB service.


Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Moleculer logo

moleculer-db-adapter-cosmos Build Status Coverage Status GitHub license npm Downloads stability-experimental

Warning: This DB adapter is not stable and it does not contain any Request Units optimizations. Use it at your own risk.

CosmosDB SQL native adapter for Moleculer DB service.

Install

$ npm install moleculer-db moleculer-db-adapter-cosmos --save

Usage

const { ServiceBroker } = require("moleculer");
const DbService = require("moleculer-db");
const CosmosDbAdapter = require("moleculer-db-adapter-cosmos");

// Mock CosmosDB server
const { default: cosmosServer } = require("@zeit/cosmosdb-server");
const https = require("https");

const connection = {
  endpoint: `https://localhost:3000`, // URL to your Cosmos DB
  key: "dummy key", // Put your password
  // Create new Agent with disabled SSL verification
  // since the server uses self-signed certificate
  agent: https.Agent({ rejectUnauthorized: false }) // For test purposes only. Remove this when working with an actual DB
};

const dbName = "sample_database";
const containerName = "sample_collection";

// Create broker
let broker = new ServiceBroker({
  logger: console,
  logLevel: "debug"
});

// Create a service
broker.createService({
  name: "store",
  // Load DB methods and action handlers
  mixins: [DbService],
  // Create a Cosmos DB adapter
  adapter: new CosmosDbAdapter(connection, dbName, containerName),

  async afterConnected() {
    this.broker.logger.info("Connection Established");
  }
});

// Start mock CosmosDB server
cosmosServer().listen(3000, () => {
  // Start the broker
  broker.start().then(async () => {
    const documentDefinition = {
      id: "hello world doc",
      content: "Hello World!"
    };

    // Insert an Item
    let item = await broker.call("store.create", documentDefinition);

    broker.logger.info(`Item Created`);
    broker.logger.info(item);

    // Find all items in BD
    let result = await broker.call("store.find");
    broker.logger.info(`Items in DB`);
    broker.logger.info(result);

    // Count the items
    let count = await broker.call("store.count");
    broker.logger.info(`Number of Items in DB`);
    broker.logger.info(count);

    // Remove by ID
    broker.logger.info(`Removing an Item`);
    await broker.call("store.remove", { id: documentDefinition.id });

    // Count again
    count = await broker.call("store.count");
    broker.logger.info(`Number of Items in DB`);
    broker.logger.info(count);
  });
});

Test

$ npm test

In development with watching

$ npm run ci

License

The project is available under the MIT license.

Contact

Copyright (c) 2019 André Mazayev

Keywords

FAQs

Package last updated on 28 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc