github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/build-blockchain-insurance-app-master/web/www/config/express.js (about)

     1  'use strict';
     2  
     3  import express from 'express';
     4  import bodyParser from 'body-parser';
     5  import path from 'path';
     6  import morgan from 'morgan';
     7  import compression from 'compression';
     8  import i18nConfig from './i18n';
     9  
    10  export default function (app) {
    11    const isDev = app.get('env') === 'development';
    12  
    13    // Configure Express
    14    app.set('view engine', 'pug');
    15    app.use(compression({
    16      filter: (req, res) => {
    17        if (req.headers['x-no-compression']) {
    18          return false;
    19        }
    20        return compression.filter(req, res);
    21      }
    22    }));
    23    app.use(require('cookie-parser')());
    24    app.use(bodyParser.urlencoded({
    25      extended: true
    26    }));
    27    app.use(bodyParser.json());
    28  
    29    // Serve static files with lower priority
    30    app.use(express.static(path.resolve(__dirname, '../..', 'static')));
    31    const webpackConfig = isDev ? require('../../webpack.config.dev').default : require('../webpack.config.prod').default;
    32    if (isDev) {
    33      const webpack = require('webpack');
    34      const compiler = webpack(webpackConfig);
    35      // Configure logging
    36      app.use(morgan('dev'));
    37      // Configure webpack
    38      app.use(require('webpack-dev-middleware')(compiler, {
    39        noInfo: false,
    40        publicPath: webpackConfig.output.publicPath
    41      }));
    42      app.use(require('webpack-hot-middleware')(compiler));
    43    } else {
    44      console.log(webpackConfig.output.path);
    45      app.use(express.static(webpackConfig.output.path));
    46    }
    47  
    48    // Set up internationalization for the backend
    49    i18nConfig(app);
    50  
    51    // Set up security features if running in the cloud
    52    if (process.env.VCAP_APPLICATION) {
    53      require('./security').default(app);
    54    }
    55  }