UNPKG

933 BJavaScriptView Raw
1
2'use strict';
3
4// Modules
5var express = require('express');
6var socketio = require('socket.io');
7var config = require('otto-config');
8var error_handler = require('otto-error-handler');
9
10// Export App
11module.exports = function (options) {
12
13 if (!options) { options = {}; }
14
15 // New Express App
16 var app = express();
17
18 // TODO: Add configuration options
19 // Add WebSockets
20 var io = socketio();
21 app.socketio = io;
22
23 // Global Settings
24 config.global(app, process.env);
25
26 // TODO: Add configuration option
27 // Serve static files before the routes
28 // app.use(express.static(__dirname + '/../public')));
29
30 // Attach Routes
31 if (options.routes) {
32 if (!Array.isArray(options.routes)) { return new Error('options.routes needs to be an Array'); }
33 for (var i = 0; i < options.routes.length; i++) {
34 options.routes[i] (app);
35 }
36 }
37
38 // Handle Errors
39 error_handler(app);
40
41 return app;
42
43};