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