furnace

express

declaration
 express 

Server task
Spins up express server. Simple.

var express = require('express');
var http    = require('http');
var morgan  = require('morgan');
var config = require('../config');

config.merge({
    server: {
        root: 'build',
        index: 'index.html',
        port: 8181,
        errorHandler: function () {

        }
    }
});

exports.task = function task() {

    var opts = config.load('server');
    var server = express();

    server.use(morgan('dev'));

    // use express static middleware
    server.use(express.static(opts.root));

    // Ensure that all routes are routed to index.html (spa)
    server.all('/*', function (req, res) {
        res.sendFile(opts.index, {root: opts.root});
    });

    http.createServer(server)
        .on('error', opts.errorHandler)
        .listen(opts.port)
    ;

};