You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

loopback-connector-memcached

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

loopback-connector-memcached

Loopback connector for memcached backend

1.0.1
latest
Source
npmnpm
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

loopback-connector-memcached

Memcached loopback.io connector. Please fork and enhance or file a bug ticket if you discover any issues.

Why?

Why not? This is was more of a learning exercise to get acclimated to Loopback.io, however, someone may find it useful.

Use cases

  • Query Memcached nodes via HTTP
  • Common interface (Client.find(), Client.findOne(), etc)

Usage

To effectively use this connector, you need to create a model with the following properties:

  • /common/models/memcached.json
yo loopback:model
>> enter model name (ie: Memcached)
  • id - Key to use for caching item
  • data - Data to cache
  • ttl - The time to live for the cached item
{
  "name": "cache",
  "plural": "cache",
  "base": "PersistedModel",
  "idInjection": false,
  "properties": {
    "id": {
      "type": "string",
      "required": true,
      "id": true,
      "index": true
    },
    "data": {
      "type": "string",
      "required": true
    },
    "ttl": {
      "type": "number",
      "required": false
    }
  },
  "validations": [

  ],
  "relations": {

  },
  "acls": [

  ],
  "methods": [

  ]
}

Sample Model JS (ie: memcached.js)

  • /common/models/memcached.js
module.exports = function(Cache) {
  // Add additional remote methods
  Cache.remoteMethod('<name>', {
    // config
  })
};

Sample datasources.json

{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "memcached": {
    "name": "memcached",
    "connector": "memcached",
    "hosts": [
      "localhost:11211"
    ],
    "options": {
      "retries": 10,
      "retry": 10000,
      "remove": true,
      "failOverServers": []
    }
  }
}

Sample boot script (accounts.js)

  • /server/boot/accounts.js
module.exports = function(app) {
  var Cache = app.models.Cache;

  var Model = app.models.Memcached;
  var model = new Model({
    id: <id>,
    data: <data>,
    ttl: <ttl>
  });

  if (model.isValid(function(valid) {
    if (!valid) {
      throw new Error(model.errors[0]);
    }

    Cache.create(model, function(e, res) {

       // find item
       Cache.find({id: 300}, function(e, res) {
         console.log('found', e,res);
       });

       // find one -- same as find
       Cache.findOne({id: 300}, function(e, res) {
         console.log('found 2', e,res);
       });

       // get num records
       Cache.count(function(e, res) {
         console.log(arguments);
       });
     });
  });
};

Keywords

loopback

FAQs

Package last updated on 25 Mar 2015

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