0.0.12 • Published 3 years ago

fvi-koa-server v0.0.12

Weekly downloads
3
License
MIT
Repository
github
Last release
3 years ago

fvi-koa-server

  • npm run compile: Executa a limpeza dos arquivos e diretorios.
  • npm run debug-test: Executa os testes unitários com o DEBUG ativo.
  • npm run test: Executa os testes unitários.
  • npm run debug-dev: Executa os testes unitários e espera por alterações com o DEBUG ativo.
  • npm run dev: Executa os testes unitários e espera por alterçãoes.
  • npm run prod: Executa o código com NODE_ENV=production.
  • npm run coverage: Executa os testes unitários e retorna a cobertura dos códigos através do nyc
  • npm run release: Inicia uma nova release de versão incrementando o patch, git flow release start.
  • npm run release:minor: Inicia uma nova release de versão incrementando o minor, git flow release start.
  • npm run release:major: Inicia uma nova release de versão incrementando o major, git flow release start.
  • npm run release:finish: Finaliza a release, ou seja, realiza o git flow release finish.

FVI - Koa Server

Biblioteca que implementa um servidor http utilizando a biblioteca koa.

Configuração

Esta biblioteca utiliza uma instância da biblioteca node-convict.js, ou qualquer outra biblioteca que respeitar o contrato abaixo:

config.get('prop1.prop2.prop3'): Object
config.has('prop1.prop2.prop3'): Boolean

Exemplo de outra biblioteca que pode ser utilizada é node-config.js

Existe um contrato para as propriedades em um arquivo de configuração para o funcionamento correto deste módulo, devemos configurar as informações como o exemplo, convict, abaixo:

{
    "server": {
        "name": {
            "doc": "Koa Server Name",
            "format": String,
            "default": "unknown-koa-server",
            "env": "KOA_SERVER_NAME",
            "arg": "koa-server-name"
        },
        "port": {
            "doc": "Koa Server Port",
            "format": "port",
            "default": 4000,
            "env": "KOA_SERVER_PORT",
            "arg": "koa-server-port"
        },
        "version": {
            "doc": "Koa Server Version",
            "format": String,
            "default": "1.0.0",
            "env": "KOA_SERVER_VERSION",
            "arg": "koa-server-version"
        }
    }
}

Mode de Usar

Aqui iremos demonstrar a utilização da biblioteca utilizando outra biblioteca para criar as rotas do servidor a koa-router

const app = require('fvi-koa-server')

const server = app(config)

const Router = require('koa-router')

const router = new Router()

router.get('/echo/:it', ctx => {
  ctx.body = ctx.params.it
})

router.get('/querystring', ctx => {
  ctx.body = ctx.query
})

router.post('/form', ctx => {
  ctx.body = ctx.request.body
})

server.use(router.routes()).use(router.allowedMethods())

server Object

Este é um Object que representa as informações da instância do Koa Object com algumas informações a mais, como segue abaixo:

  • server.env: Informações das variáveis de ambiente que o servidor utiliza.
  • server.info: Informações gerais do servidor, como nome, porta, etc.

server.instance

Este é um Object que representa a instância do servidor, ou melhor, o mesmo que:

const Koa = require('koa')
const server = new Koa()
const instance = server.listen(4000)

server.instance = instance

Portanto, podemos considerar o seguinte comando para terminar nosso servidor:

server.instance.close()