backbone-dnode
Version:
Persistant backbone storage through dnode pub/sub
76 lines (61 loc) • 1.92 kB
JavaScript
// Basic Server
// ============
// Include all project dependencies
var express = require('express')
, Mongoose = require('mongoose')
, Schema = Mongoose.Schema
, BackboneDNode = require(__dirname + '/../../')
, DNode = require('dnode')
, app = module.exports = express.createServer()
// Server configuration
app.configure(function() {
app.use(express.bodyParser())
app.use(express.cookieParser())
app.use(express.methodOverride())
app.use(express.static(__dirname))
app.use(express.static(__dirname + '/../vendor/'))
app.use(express.static(__dirname + '/../../browser/'))
app.use(express.errorHandler({
dumpExceptions: true
, showStack: true
}))
})
// Routes
// ------
// Main application
app.get('/', function(req, res) {
res.render(__dirname + '/index.html')
})
// Start up the application and connect to the mongo
// database if not part of another module or clustered,
// configure the Mongoose model schemas, setting them to
// our database instance. The DNode middleware will need
// to be configured with the database references.
database = Mongoose.connect('mongodb://localhost:27017/db')
var TodoSchema = new Schema({
content: String
, done: Boolean
, order: Number
})
database.model('todo', TodoSchema)
// Initialize
// ----------
// Start up the server
app.listen(8080, function() {
console.log("Server configured for: " + (global.process.env.NODE_ENV || 'development') + " environment.")
console.log("Server listening on port: " + app.address().port)
})
// General error handling
function errorHandler(client, conn) {
conn.on('error', function(e) {
console.log('Conn Error: ', e.stack)
})
}
// Attatch the DNode middleware and connect
DNode()
.use(errorHandler)
.use(BackboneDNode.pubsub())
.use(BackboneDNode.crud({
database: database
}))
.listen(app)