Node's Pastoral Musicians

    @emartech/boar-koa-server

    1.1.2 • Public • Published

    Boar Koa Server

    Example usage for app

    put these lines in your server.js

      const Koa = require('koa');
      const path = require('path');
      const koaApp = module.exports = new Koa();
      const config = require('./config');
      const App = require('@emartech/boar-koa-server').app;
    
      const app = new App(koaApp);
      app.loadControllers(path.join(config.root, 'controllers'));
    
      if (!module.parent) { app.listen(config.port); }

    Add middleware for your app

      const cors = require('koa-cors');
      const app = new App(koaApp);
      app.addMiddleware(cors());

    Build-in Middlewares

    Cors Support (koa-cors)

      app.addCorsSupportMiddleware();

    Method Override (koa-methodoverwrite)

      app.addMethodOverrideMiddleware();

    Body Parse (koa-bodyparser)

    Param Type Description
    options Object More info.
      app.addBodyParseMiddleware(options);

    Request Id (koa-requestid)

    Param Type Description
    options Object optional
    ↳header String The name of the header to read the id on the request, false to disable.
    ↳query String The name of the header to read the id on the query string, false to disable.
    ↳expose String The name of the header to expose the id on the response, false to disable.
      app.addRequestIdmiddleware(options);

    Enforce SSL (koa-ssl)

    Param Type Description
    options Object More info.
      app.addEnforceSSLMiddleware();

    If your application is running behind reverse proxy (like Heroku) you should set the trustProxy configuration option to true in order to process the x-forwarded-proto header.

      const app = new App(koaApp);
      app.addEnforceSSLMiddleware({ trustProxy: true });

    Note: if you use this middleware EnforceSSL middleware should be the first you add.

    Security

    Provides middlewares for setting up various security related HTTP headers.

    Param Type Description
    options Object
    ↳csp Object More info. Learn more: CSP quick reference
    ↳hsts Object More info. Learn more: OWASP HSTS page
    ↳useXssFilter Boolean If true, x-xss-protection middleware will be included. Default: true
    ↳useNoSniff Boolean If true, dont-sniff-mimetype middleware will be included. Default: true
    ↳referrerPolicy Boolean,Object If{ policy: 'same-origin'}, referrer-policy middleware will be included. Default false
      app.addSecurityMiddlewares(options);

    Default configuration

      {
        csp: {
          directives: {
            defaultSrc: ["'self'"],
            scriptSrc: ["'self'"],
            styleSrc: ["'self'"],
            imgSrc: ["'self'"],
            frameAncestors: ["'self'"],
            reportUri: 'about:blank'
          },
          reportOnly: true
        },
        hsts: {
          maxAge: 30,
          includeSubDomains: true,
          preload: false
        },
        useXssFilter: true,
        useNoSniff: true,
        referrerPolicy: false
      }

    Libraries

    ControllerFactory

      var ControllerFactory = require('@emartech/boar-koa-server').lib.controllerFactory;
    
      module.exports = ControllerFactory.create(function(router) {
        router.get('/', ControllerFactory.load('main/actions/get'));
        router.get('/healthcheck', ControllerFactory.load('main/actions/healthcheck/get'));
        router.get('/list', ControllerFactory.loadByAcceptType('main/actions/list/get'));
      });

    Keywords

    none

    Install

    npm i @emartech/boar-koa-server

    DownloadsWeekly Downloads

    29

    Version

    1.1.2

    License

    MIT

    Unpacked Size

    11.4 kB

    Total Files

    8

    Last publish

    Collaborators

    • tillmannr
    • markjarvis
    • geczirobert
    • tsiraitnpm
    • bankyadam
    • bborsi
    • zbalazs
    • ziyadg
    • pintera
    • sigee
    • apoon
    • ianhelmrich
    • varszegik
    • rkumari03
    • cseby92
    • bozsadam
    • jfillmore
    • viktor.szell
    • bencekadaremar
    • roxanams
    • dkocsis-emarsys
    • demajo_ems
    • marko.fritzsche
    • agrucza
    • dmorvai
    • nish343
    • kolosh
    • azorahai3904
    • skrivoo
    • mark.adorjan
    • burci
    • dimitrovn
    • ivanfroehlich
    • iulianmihai
    • xueboliang
    • greszter
    • bercziand
    • okovalenko
    • criley
    • drewhodsonsap
    • jviesersap
    • sixstep
    • sap-jjf
    • sapfs
    • attilamuller01
    • prasadpomaji
    • scotthetrick
    • oliverweisenburger
    • maurogreco
    • nicolaeciumac
    • asciortino1
    • pendicg24
    • marton.matusek
    • adamszabolcs
    • btalos
    • bence.uto
    • daniels1404
    • saphendricksjoerg
    • mmartin2
    • fenyopeti
    • mmothersill
    • brandon-sap
    • pjohnson02
    • mhunyady
    • faridtoubal
    • mengjiao.zhao
    • ushnpm
    • dkorpos
    • xin.he
    • viau
    • zsomborh
    • muddam
    • nvkaur2
    • jbleclerc
    • b-laczko
    • jamescocker
    • arnaud.buchholz
    • jerryrichardson
    • retfalvibence
    • akapa
    • mkls
    • probalazs
    • kaaj
    • knagy
    • pecc
    • kszalontai
    • rehreth
    • mhegedus
    • mmartin
    • bsoos
    • emarsys-deployer
    • draven
    • npospischek-emartech
    • judge
    • daniel.banky
    • szeist
    • rgargya
    • marton.papp.emarsys
    • dgyenes
    • s.viktor
    • m4w4q7
    • david.barkoczi
    • blacksonic
    • qw3r
    • tamas.toth
    • gergaczd
    • gerike
    • alkra
    • epgrubmair
    • morban
    • ettancos
    • epmartini
    • gabor.balla.emarsys
    • mzsombor
    • ejpersson
    • ejwalker
    • llosonczy
    • iben12
    • kartonfarkas
    • adamoa
    • mbarna
    • peva
    • bforgacs
    • kozma
    • ngabor84
    • zerosuxx
    • edosrecki
    • eadaniel
    • selator
    • kkimak
    • szb
    • gaborb
    • glendvai
    • lveraszto
    • rdoczi
    • fentosi
    • boristomic
    • mbazso
    • dmihalek
    • lhalasz
    • evspasevski
    • eslesnjakovic
    • dsztanko
    • tbugar
    • fqqdk
    • eggarcia
    • ems-zoltan-kohalmy
    • menyhertfatyol
    • zoltanrideg-emarsys
    • sarakoll
    • mmolnar-emar
    • attila.gal
    • benjamingehl
    • tdorkaa
    • lkonya
    • gpap_ema
    • vimtaai
    • lloki-emarsys
    • borzi
    • pmaksa_emarsys
    • dfarago