index.js 800 Bytes
var path = require('path');
var IoC = require('electrolyte');
var bootable = require('./bootable');
var express = require('express');
var Promise = require('bluebird');

process.chdir(__dirname);
//依赖注入
IoC.use(IoC.dir(path.join(__dirname, 'boot')));
IoC.use('igloo', require('./igloo'));


var app = bootable(express());

app.pushPhase = function (phase) {
    new Promise(function (resolve, reject) {
        phase(resolve, reject)
    }).then(function (data) {
        app.phase(bootable.di.initializers());
        app.phase(bootable.di.routes('./routes'));
        IoC.create('igloo/server').then(function (server) {
            app.phase(server);
        });
    });
};

var workaiExpress = {
    'app': app,
    'IoC': IoC,
    'bootable': bootable
};

module.exports = workaiExpress;