engined-http
HTTP agent service for engined, which is based on koa 2
.
Installation
Install via NPM:
npm install engined-http
Usage
Start HTTP agent service in engined, see example below:
const Manager = ;const HTTPService = ; const MyHTTPService = ; const main = async { // Create manager let serviceManager = verbose: true ; // Adding agent to manager serviceManager; // Start all services await serviceManager;}; ;
Setup Router
For HTTP routing, there is a way to inherit RouterService
class to create a router service to manage routes by using koa-router
.
const Router = ;const RouterService = ; // Create service prototype and specify agentconst Service = ; async { let router = ; router; return router; }
Note: remember to add this service to engined service manager and start it.
Setup Middlewares
By default, HTTP service will apply koa-logger
, koa2-cors
and koa-bodyparser
middlewares. If you would like to apply any perfered middlewares, just override setupMiddleware
method of service.
port: 8080 async { // Apply original `koa-logger`, `koa2-cors` and `koa-bodyparser` if you still need it await this; // Add your middleware thisagent; }
Setup CORS (Cross-Origin Resource Sharing)
By override setupCORS
method of service, to make settings as parameter for koa2-cors
to support CORS.
port: 8080 async { return origin: '*' ; }
Setup Body Parser
The body parser is common middleware to parse HTTP body, we can have settings supported by koa-bodyparser
.
port: 8080 async { return jsonLimit: '50mb' textLimit: '50mb' ; }
Setup Views Renderer
By override setupViews
method of service, to enable and setup prefered view renderer.
The returned object for settings:
- path: Where your views are located. Must be an absolute path. All rendered views are relative to this path
- templateEngine: The loaded module of template engine
- options: options object as parameter to
koa-views
port: 8080 async { return path: path templateEngine: options: extension: 'pug' map: html: 'pug' ; }
License
Licensed under the MIT License
Authors
Copyright(c) 2017 Fred Chien(錢逢祥) <cfsghost@gmail.com>