backnode

Express inspired web development framework, built on Backbone and Connect

Backnode

Experiment on making Backbone usable in Node.

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

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);
$ npm install backnode

$ npm test

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