eecs448-project-4/index.js

44 lines
1.6 KiB
JavaScript
Raw Normal View History

2020-11-01 18:50:03 +00:00
/*
* Load the units file.
* -------------------------------------------------------------
* This file contains an ordered object of unit files. Flitter will load these
* one at a time to launch the application. Each unit in the sequence is passed
* the function for the next unit in the sequence. This forms the function stack
* by chaining the units together, ending with the Flitter App unit.
*/
const units = require('./Units.flitter')
const { FlitterApp, RunLevelErrorHandler } = require('libflitter')
/*
* Create the app.
* -------------------------------------------------------------
* The FlitterApp object contains the wrapper for the Express app, as well as
* the initialization function that chains together the individual units. This
* is why we pass it the units.
*/
const flitter = new FlitterApp(units)
/*
* Create the error handler.
* -------------------------------------------------------------
* The run-level error handler is responsible for dealing with errors that make
* it all the way to the top level of the running app. Most of the time, routing
* errors are handled by the router and result in some kind of error page showing
* to the user.
*
* The errors handled by the RLEH are structural errors that are problems with the
* application itself.
*/
const rleh = new RunLevelErrorHandler()
/*
* Launch the server.
* -------------------------------------------------------------
* This calls the first unit in the unit chain. This chain ends with the Flitter
* server component which launches the Node HTTP server.
*
* Calls up() and down().
*/
flitter.run().catch(rleh.handle)