et
effortlessness, serverside et al.
$ npm install et
Usage
This example uses jugglingdb as a resource
to provide schema based database access
thing.coffee
module.exports = : # # config() is called when the server starts up # to allow for things like schema definitions # optsresourcedatabase1define 'things' id: Number name: String location: String : # # The presence of a get() method here causes the # automatic creation of the rest endpoint '/things/:id' # Thing = reqetresourcedatabase1modelsthing Thingfind 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" #
server.coffee
et = require'et'Schema = require'jugglingdb'Schema server = etal port: 3001 resource: # # 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'
result
$ coffee server...$ curl http://localhost:3001/things/1 "id": 1 "name": "Venus of Hohle Fels" "location": "Schelklingen, Germany"
Develop
2013-02-?? (0.0.5)
- TODO Added post() to enable http POST endpoints
- TODO Configurables for redis session store (eg. redis:hostname:port:password)
Changelog
2013-02-01 (0.0.4)
- Added middleware config
opts.before
andopts.use
callbacks - 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)
2013-01-04 (0.0.3)
- Added auto spawn a restify server if no
opts.app
provided et.al( opts )
returns the running server- Switched specs to mocha
2012-12-12 (0.0.2)
- 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
2012-12-09 (0.0.1)
- Added support for http GET to et
- Transparently plugin to express' routing