Home

Awesome

Backnode

Experiment on making Backbone usable in Node.

Express inspired web development framework, built on Backbone and Connect.

Synopsis

var app = backnode();

var Router = backnode.Router.extend({
  routes: {
    '/basic'                  : 'basic',
    '/json'                   : 'json',
    'GET /verb'               : 'verb',
    'POST /verb'              : 'post',
    '/param/:param'           : 'param',
    '/pipe'                   : 'pipe'
  },

  // res is always last argument and is the response object,
  // wrapping req and next to hook into middleware logic and
  // eventually end the response.
  basic: function basic(res) {
    res.end('basic!');
  },

  json: function foo(res) {
    res.json({ message: '' });
  },

  verb: function verb(res) {
    res.end('verb!');
  },

  post: function post(res) {
    res.end('post!');
  },

  param: function param(value, res) {
    res.end(value + '!');
  },

  render: function render(res) {
    res.render('index', { foo: 'bar' });
  },

  view: function view(res) {
    new backnode.View({ id: 'index.html' }).render(function(e, str) {
      if(e) return res.next();
      res.end(str);
    });
  },

  pipe: function pipe(res) {
    new backnode.View({ id: 'index.html' }).pipe(res);
  },

  model: function model() {
    var model = new backnode.Model({ name: 'backnode' });
    new backnode.View({ id: 'index.html', model: model }).pipe(res);
  }
});

var app = backnode()
  .use(backnode.favicon())
  .use(backnode.logger('dev'))
  .use(backnode.static('public'))
  .use(backnode.directory('public'))
  .use(backnode.cookieParser('my secret here'))
  .use(backnode.session())
  .use(new Router)
  .use('/subpath', new Router)

app.listen(3000);

Installation

$ npm install backnode

Tests

Build Status

$ npm test

It'll run every assertion test/test-*.js files.