effortlessness, et al.
effortlessness, serverside et al.
$ npm install et
This example uses jugglingdb as a
resource to provide schema based database access
module.exports =:## config() is called when the server starts up# to allow for things like schema definitions#optsresourcedatabase1define 'things'id: Numbername: Stringlocation: String:## The presence of a get() method here causes the# automatic creation of the rest endpoint '/things/:id'#Thing = reqetresourcedatabase1modelsthingThingfind reqparamsid## apologies, have not looked into what args1&3 are...#ressend data## although called a model, this is more precisely a combination# of model and controller## ie. a "controdel"#
et = require'et'Schema = require'jugglingdb'Schemaserver = etalport: 3001resource:## resources become available in the models# (see above)#database1: 'postgres'host: 'db.domain.com'database: 'dbname'username: 'dbuser'password: 'passrod'models:## link 'thing.coffee' as a 'model'#things: require './thing'static:scripts:## key (above) must match last path element (below)#path: __dirname + '/nested/path/to/scripts'
$ coffee server...$ curl http://localhost:3001/things/1"id": 1"name": "Venus of Hohle Fels""location": "Schelklingen, Germany"
- TODO Added post() to enable http POST endpoints
- TODO Configurables for redis session store (eg. redis:hostname:port:password)
- Added middleware config
- Added use of env vars APP_NAME, APP_VERSION, APP_PORT, APP_LOGLEVEL (if present)
- Added use of restify app name and version
- Added overideable request logger, first into the connect stack
- Added configurable bunyan logger
- Added auto serve static assets from `opts.static.key.path (if present)
- Added auto spawn a restify server if no
et.al( opts )returns the running server
- Switched specs to mocha
- Added call to model.config (if present), to configure resources at startup
- Added opts.resource available at startup and on req._et.resource
- Added basic local auth using passport
- Added basic redis session using connect.session (very defaulty! See TODO in src/session)
- Added et.al() all encompasser
- Added support for http GET to et
- Transparently plugin to express' routing