Skip to content

Instantly share code, notes, and snippets.

@kiasaki
Last active November 13, 2015 03:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kiasaki/263e69a36a523cfef7ac to your computer and use it in GitHub Desktop.
Save kiasaki/263e69a36a523cfef7ac to your computer and use it in GitHub Desktop.
Node.js architecture blog post (app.js)
import express from 'express';
import container from './container';
let app = express();
// ... middlewares, config ...
// Manually setting intance
import EventEmitter from 'events';
container.set('events', new EventEmitter());
// Automatically resolving dependencies and setting an instance
container.load(require('./lib/config'));
container.load(require('./lib/db'));
container.load(require('./lib/auth'));
container.load(require('./repositories/user'));
container.load(require('./services/billing'));
// Using container to resolve dependencies but
// giving back the instance insted of setting it.
let requireUser = contrainer.get('auth').requireUserMiddleware;
let userController = container.create(require('./controllers/user'));
app.get('/users/:id', requireUser, userController.showUser);
app.get('/users/create', requireUser, userController.showCreateUser);
app.post('/users', requireUser, userController.createUser);
// ... error handling ...
app.listen(contrainer.get('config').get('port'));
container.get('events').emit('app:started');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment