app.js 1.22 KB
/**
 * app.js
 * @author: feng.chen<feng.chen@yoho.cn>
 * @date: 2017/04/13
 */
'use strict';

const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const Express = require('express');
const session = require('express-session');
const config = require('./common/config');
const logger = require('yoho-node-lib/lib/logger').init(config);
const helpers = require('yoho-node-lib/lib/helpers');

let app = new Express();

global.Promise = require('bluebird');

global.yoho = {
    logger,
    helpers,
    config,
    apiDomain: config.apiDomain
    co: global.Promise.coroutine
};

app.use(session({
    secret: 'yoho!shop@manage'
}));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());

const middleware = require('./middleware');
const controllers = require('./controllers');

try {
    // 前置中间件
    app.use(middleware.before);

    // controller
    app.use(controllers);

    // // 后置中间件
    app.use(middleware.auth);
    app.use(middleware.proxy);

    // // 异常捕获中间件
    app.use(middleware.error);
} catch (err) {
    logger.error(err);
}


app.listen(config.port, () => {
    logger.log('yoho shop manage start !');
});