Skip to content

Instantly share code, notes, and snippets.

@laser
Created April 30, 2014 17:50
Show Gist options
  • Save laser/aac764ddbabdc04f05d2 to your computer and use it in GitHub Desktop.
Save laser/aac764ddbabdc04f05d2 to your computer and use it in GitHub Desktop.
Barrister.js Node Server
// server
var express = require('express')
, fs = require('fs')
, http = require('http')
, path = require('path')
, barrister = require('barrister')
, store = require("./store").store
, idl = JSON.parse(fs.readFileSync("./todo_manager.json").toString());
var app = express();
app.set('port', 3000);
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
var server = new barrister.Server(idl);
server.addHandler('TodoManager', {
'readTodos': function(callback) {
callback(null, store.getAll());
},
'createTodo': function(todo, callback) {
callback(null, store.save(todo));
},
'updateTodo': function(todo, callback) {
callback(null, store.update(todo.id, todo));
},
'deleteTodo': function(id, callback) {
callback(null, null);
}
});
app.post('/todos', function(req, res) {
server.handle({}, req.body, function(respJson) {
res.contentType('application/json');
res.send(respJson);
});
});
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment