# @ionaru/micro-web-service

> A library with tools to quickly create an express server

Latest version **5.0.0** (published 2022-04-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install @ionaru/micro-web-service
pnpm add @ionaru/micro-web-service
yarn add @ionaru/micro-web-service
bun add @ionaru/micro-web-service
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 5.0.0 |
| Published | 2022-04-14 |
| First published | 2019-12-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 41.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Jeroen Akkerman |
| Maintainers | ionaru |

## Links

- npm: https://www.npmjs.com/package/@ionaru/micro-web-service
- Repository: https://github.com/Ionaru/micro-web-service
- Homepage: https://github.com/Ionaru/micro-web-service#readme
- Issues: https://github.com/Ionaru/micro-web-service/issues
- npm.io page: https://npm.io/package/@ionaru/micro-web-service

## Dependencies (7)

- [chalk](https://npm.io/package/chalk.md) ^4.1.2
- [express](https://npm.io/package/express.md) ^4.17.1
- [body-parser](https://npm.io/package/body-parser.md) ^1.19.0
- [compression](https://npm.io/package/compression.md) ^1.7.4
- [on-finished](https://npm.io/package/on-finished.md) ^2.3.0
- [http-status-codes](https://npm.io/package/http-status-codes.md) ^2.1.4
- [@ionaru/web-server](https://npm.io/package/@ionaru/web-server.md) ^4.2.0

## Recent versions

- 5.0.0 (latest) — 2022-04-14
- 5.0.1-8.0 (next) — 2022-04-14
- 4.2.1-6.0 — 2022-03-27
- 4.2.1-5.0 — 2022-03-27
- 4.2.1-4.0 — 2022-03-26
- 4.2.1-3.0 — 2022-03-26
- 4.2.1-1.0 — 2022-03-26
- 4.2.1-32.0 — 2021-04-11
- 4.2.0 — 2021-04-11
- 4.1.0 — 2021-04-10
- 4.1.1-31.0 — 2021-04-10
- 4.0.1-28.0 — 2021-04-10
- 4.0.0 — 2021-04-10
- 3.0.3-27.0 — 2021-04-08
- 3.0.3-25.0 — 2021-04-06
- … 23 more at https://npm.io/package/@ionaru/micro-web-service/versions

## README

# @ionaru/micro-web-service

## Description
A library with tools to quickly create an express server.

## Usage
```
npm install @ionaru/micro-web-service ajv ajv-errors ajv-formats
npm install -D @types/body-parser @types/compression @types/express @types/express-serve-static-core
```

```js
export class ExampleRouter extends BaseRouter {

    // request: express.Request
    // response: express.Response
    // next: express.NextFunction

    static badHandler(request, response, next) {
        ExampleRouter.sendResponse(response, 400, 'Bad');
    }

    static okHandler(request, response, next) {
        ExampleRouter.sendSuccess(response);
    }

    static dataHandler(request, response, next) {
        ExampleRouter.sendSuccess(response, {value: 5});
        // Data can be anything.
        // Responds {data: {value: 5}, message: 'OK', state: 'success'}
    }

    constructor() {
        super();

        this.createRoute('get', '/bad', ExampleRouter.badHandler);
        this.createRoute('get', '/ok', ExampleRouter.okHandler.bind(this)); // Bind class context.
        this.createRoute('get', '/data', ExampleRouter.dataHandler);
    }
}

const router = new ExampleRouter();
const serviceController = new ServiceController({
    port: 3000,
    routes: [
        ['/', router],
    ],
}).listen().then();

// Close the webserver
serviceController.close().then();
```

---
_Source: https://npm.io/package/@ionaru/micro-web-service · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
