crate-connect

    0.1.51 • Public • Published

    crate-connect

    Build Status

    A simple node.js driver to connect to a Crate.io Data Storage, this was originally part of the CrateJS driver, now CrateJS is an extension of crate-connect.

    Installation

    npm install crate-connect
    

    Sample usage

    var Crate = require('crate-connect');
     
    // You can have as many db instance as you please :)
    // You should probably add this part to another module and export it!
    var db = new Crate({
      host: 'localhost', //Defaults to localhost
      port: 4200, //Defaults to 4200
      // You can also send in a cluster of nodes
      cluster: [
          {
            host: 'localhost',
            port:4200
          },
      ]
    });
     
    // Now lets build some queries, using placeholders, you can either use ? or $1, $2, $3...
    var q = {
      getSomeTweets: db.Query('SELECT text FROM tweets LIMIT ?'),
      getReTweeted:  db.Query('SELECT text FROM tweets WHERE retweeted = $1 LIMIT $2'),
    };
     
    // Get some tweets
    q.getSomeTweets.execute([10], onResponse);
     
    // Get only tweets with retweets
    q.getReTweeted.execute([true, 10], onResponse);
     
    function onResponse(err, res) {
        if(err) {
          //Do something
          return;
        }
     
        console.log('Returned %d rows', res.rowcount);
        console.log('Columns returned:\n', res.cols);
        console.log(res.rows);
    }

    Methods

    db.Query(string)

    • This constructs a query and returns an .execute() method.

    db.execute(query, statements, callback)

    • This executes a query directly
    • Statements is an optional parameter, you can replace it with the callback
    db.execute('SELECT * FROM tweets LIMIT ?', [1], function(err, res) {})

    db.blob()

    • Methods related to managing blob's
    • Note that this does not construct the sha1 hash from the buffer, you need to do it yourself.
    • Note that if the sha1 hash is not correct, the blob wont be inserted. The sha1 hash must be calculated from the blob to be inserted.

    blob().put(table, sha1Hash, buffer, callback)

    var buffer = new Buffer('sample')
    var hash = crypto.createHash('sha1').update(buffer).digest('hex')
     
    ####blob().put('imagesTable', hash, buffer, function(err) {
        if(err) {
            //err.statusCode
        }
    })

    blob().get(table, sha1Hash, callback)

    db.blob().get('imagesTable', '8151325dcdbae9e0ff95f9f9658432dbedfdb209', function(err, buffer) {
        if(err) {
            //err.statusCode
        }
    })

    blob().check(table, sha1Hash, callback)

    db.blob().check('imagesTable', '8151325dcdbae9e0ff95f9f9658432dbedfdb209', function(err) {
        if(err) {
            //err.statusCode
        }
    })

    blob().delete(table, sha1Hash, callback)

    db.blob().check('imagesTable', '8151325dcdbae9e0ff95f9f9658432dbedfdb209', function(err) {
        if(err) {
            //err.statusCode
        }
    })

    TODO

    • Refactor some pieces of this code, its messy :(

    Contributors

    Install

    npm i crate-connect

    DownloadsWeekly Downloads

    0

    Version

    0.1.51

    License

    none

    Last publish

    Collaborators

    • herenow