Giter VIP home page Giter VIP logo

siridb-nodejs-addon's Introduction

SiriDB-Node.js-Add-on

Node.js add-on (C++) for SiriDB



Installation

node-gyp configure && node-gyp build

Quick usage

const sdbaddon = require('./build/Release/siridb');

var siridb = new sdbaddon.SiriDBClient(
    "iris", "siri", "dbtest", "localhost", 9000);

siridb.connect((err) => {
    if (err) {
        console.error(`Connection error: ${err}`);
    } else {
        siridb.close();
    }
});

SiriDBClient

Create a new SiriDB Client. This creates a new client but connect() must be used to connect.

var siridb = new sdbaddon.SiriDBClient(
    "iris",         // database user
    "siri",         // password
    "dbtest",       // database name
    "localhost",    // server address
    9000            // server port
);

SiriDBClient.connect

Connect to SiriDB. A callback function can be used to check if the connect is successful.

siridb.connect((err) => {
    // success: err is null
    // error:   err is a string with an error message
    if (err) {
        console.error("Connection error: ", err);
    }
});

SiriDBClient.query

Query SiriDB. Requires a string containing the query and a callback function to catch the result.

The callback function will be called with two arguments:

  • first argument: A response Object
  • second argument: Number indicating the status. The status is 0 when successful or a negative value in case of an error. (see Status codes for the possible status codes)
siridb.query("select * from /.*series/", (resp, status) => {
    // success: status is 0 and resp is an Object containing the data
    // error:   status < 0 and resp.error_msg contains a description about the error
    if (status) {
        console.error(`Query error: ${resp.error_msg} (${status})`);
    } else {
        console.log(resp);  // query data
    }
});

SiriDBClient.insert

Insert time series data into SiriDB. Requires an Array with at least one series Object.string containing the query and a callback function to catch the result.

The callback function will be called with two arguments:

  • first argument: A response Object
  • second argument: Number indicating the status. The status is 0 when successful or a negative value in case of an error. (see Status codes for the possible status codes)
var series = [{
    type: 'float',    // float or integer
    name: 'example',  // name
    points: [         // array with points
        [1505118253, 5.4],  // time-stamp, value
        [1505118307, 7.1]   // etc.
    ]
}];

siridb.insert(series, (resp, status) => {
    // success: status is 0 and resp.success_msg contains a description about the successful insert
    // error:   status < 0 and resp.error_msg contains a description about the error
    if (status) {
        console.error(`Insert error: ${resp.error_msg} (${status})`);
    } else {
        console.log(resp.success_msg);  // insert message
    }
});

SiriDBClient.close

Close the connection.

siridb.close();

Events

SiriDBClient.onClose

Will be triggered when the connction is closed or lost. This event will also be triggered when the connection is closed by the close() function.

siridb.onClose((msg) => {
    console.log(msg);  // msg is a String
});

SiriDBClient.onError

Will be triggered only when corrupt or broken data is received on the connection. This is very unlikely to happen but in case something is broken you can use this event to do something, for example close and rebuild the connection.

siridb.onError((msg) => {
    console.error(msg);  // msg is a String
});

Status codes

Sometimes its useful to act on a specific error, for example you might want to retry the request in case of ERR_SERVER while a ERR_INSERT error indicates something is wrong with the data.

The following status codes can be returned:

  • sdbaddon.ERR_MSG (-64) General error
  • sdbaddon.ERR_QUERY (-65) Most likely a syntax error in the query
  • sdbaddon.ERR_INSERT (-66) Most likely the data is invalid or corrupt
  • sdbaddon.ERR_SERVER (-67) The server could not perform the request, you could try another SiriDB server
  • sdbaddon.ERR_POOL (-68) At least one pool has no online SiriDB server
  • sdbaddon.ERR_ACCESS (-69) The database user has not enough privileges to process the request,
  • sdbaddon.ERR_RUNTIME (-70) Unexpected error has occurred, please check the SiriDB log
  • sdbaddon.ERR_NOT_AUTHENTICATED (-71) The connection is not authenticated
  • sdbaddon.ERR_CREDENTIALS (-72) Credentials are invalid
  • sdbaddon.ERR_UNKNOWN_DB (-73) Trying to authenticate to an unknown database
  • sdbaddon.ERR_LOADING_DB (-74) The database is loading

Version info

Use sdbaddon.VERSION for version information.

siridb-nodejs-addon's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.