node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »



Retain REST webservice plugin

Build Status Coverage Status


To start saving the Retain data in a REST webservice, simply inject the plugin into the Model.

var retain = require("retain");
var retainAjax = require("retain-http");
var Movies = retain();
Movies.use(retainAjax, {
      rest: "http://localhost:3000/movies"


npm install retain-http

Client version

If you want you use retain-http in the browser, there are 2 options:

  • If your bundler have implemented the package.son browser spec, just require the file using the require signature:

  • Otherwise, require the lib/client.js file using the CJS signature

    You can map the retain-http name to the lib/client.js file using your bundler mapping option, so you can require it using the default signature require('retain-http')


  • rest: REST URL that will be used to save the data.
  • search: URL that will be used to search the data (sending the attributes filter as parameter).

Creating a plugin

Retain use Promises internally to transfer data between the plugins.

To create a plugin, it is necessary to implement each of the following Retain methods.

  • new
  • all
  • set
  • find
  • remove

Each of theses methods must return a promise.


To run the tests in the server:

make test

To run the tests in the browser:

Initialize the server where the data will be requested:

make server

Initialize the server to see the tests outputs

make test-browser

Visit localhost:4000/ in the browser.