A connect/express middleware for the Racer realtime model synchronization engine with support for routes and validation
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
.gitignore
LICENSE
README.md
client.js
index.js
package.json

README.md

Express/Connect middleware that delivers Racer realtime model synchronization engine with routes and validation support.

For instance, you could do

Server:

app.use("/racer", require("racer-middleware")({
  db: require("livedb-mongo")("localhost:27017/test?auto_reconnect", {safe: true}),
  routes: {
    "library": function(req, model, done) {
      model.set("_page.authenticated", req.isAuthenticated());
      model.subscribe("library", function() {
        done();
      });
    }
  },
  validation: function(shareRequest, cb) {
    cb(shareRequest.agent.req.isAuthenticated());
  }
}));

Client (with RequireJS):

require(["/racer"], function(racer) {
  racer.load("/racer/library", function(model) {
    var authenticated = model.get("_page.authenticated"),
    books = model.get("library.books");

    /* etc */
  });
});

See example/ for a more complete example.

Notes:

  • You need redis-server >= 2.6 and node >= 0.10 running on your machine for racer to work.
  • Make sure the mongo url in the example is pointing to a running mongo server before running the example.