Just a quick update, Epitome now supports nodejs.
Here’s an example creating a server via express and socket.io with a collection and a model that can be shared on the client as well:
#!/usr/bin/env node
'use strict';
var express = require('express'),
app = express(),
http = require('http'),
server = http.createServer(app),
io = require('socket.io').listen(server);
// load mootools globals and extend protos
require('mootools');
io.set('log level', 1); // disable debug from socket.io
// example server root at dist.
app.use(express.static('./dist'));
server.listen(3333);
// use some epitome models and collections
var epitome = require('epitome'),
Model = epitome.Model,
Collection = epitome.Collection;
var User = new Class({
Extends: Model,
options: {
defaults: {
title: 'Mr.'
}
}
});
var Users = new Class({
Extends: Collection,
model: User
});
var users = new Users([{
name: 'Bob',
surname: 'Roberts'
}]);
// example adds to collection when a data:add message arrives from client
io.on('connection', function(socket){
socket.on('data:add', function(model){
users.addModel(model);
console.log('added new model', model);
});
socket.emit('data', users.toJSON());
});
To get this to work, you need to install a few npms first
$ npm install mootools express socket.io epitome