NGNX.http.Server
This is an NGN extension that simplifies common web serving. It's a slightly opinionated implementation of express that enforces good practices and simplifies development.
The following features are built in:
- Simple Routing
- Automatic Refresh
- CORS support
- TLS/SSL support
- Autostart
Usage
let server = poweredby: 'Acme Corp.' server
The code above will automatically start a web server on port 80 using the
routes defined in /path/to/routes.js
. That file may look like:
module { app app}
We like to use a variation of this that relies on separating functionality into modules:
module { let auth = let users = app app app app app}
Automatic Refresh
By default, automatic refresh is enabled. It's better to turn this off in production (which can be done through an environment variable), but it can really speed up development.
The server.createRoutes()
method is unique. It identifies files like the
example above and adds the routes. It also monitors these files for changes
and updates the server without restarting it (hot-route-loading).
When a file is removed, it's routes are removed. When a file is modified, the
routes are synchronized.
It's unlikely that a file will be deleted and recreated, but if it is, the routes will automatically be added when the file is re-added.