mkdir foo && cd foo
npm init
[press enter a lot]
npm install --save -E app-context
vi .babelrc
[
{
"presets": ["es2015", "stage-0"],
"plugins": ["add-module-exports", "transform-decorators-legacy"]
}
]
vi app-context.js
[
export default function() {
this.runlevel('configured').use('connie', 'file', 'config.json');
this.runlevel('connected').use('access-mongo', '$mongodb');
this.runlevel('running').use('express');
}
]
app-context install
[follow instructions for babel dependencies]
app-context install
vi config.json
[
{
"mongodb": "mongodb://localhost/foo"
}
]
-- at this point you could `app-context console` or `app-context start`
npm install --save -E routers
vi router.js
[
import { classApiResolver } from 'routers'
export default function(app) {
const resolve = classApiResolver('routes');
app.get('/test', resolve('test#index'));
}
]
mkdir routes
vi routes/test.js
[
class TestRoutes {
index() {
return 'foo';
}
}
export default TestRoutes;
]
-- you could now run `app-context start` and go to http://localhost:3000/test
vi routes/test.js
[
const { mongodb } = APP;
const User = mongodb.createModel('users');
class TestRoutes {
index() {
return User.array();
}
}
export default TestRoutes;
]
-- try `app-context start` and go to http://localhost:3000/test again
[for fun...]
app-context console
[
APP.mongodb.createModel('users').save({name: 'Matt Insler', email: 'matt.insler@gmail.com'})
]
-- now try the /test route again