# @ashok.patel0609/restful-express-server

> boilerplate for restful API express server

Latest version **1.0.2** (published 2020-08-25) · ISC license · 0 weekly downloads

## Install

```sh
npm install @ashok.patel0609/restful-express-server
pnpm add @ashok.patel0609/restful-express-server
yarn add @ashok.patel0609/restful-express-server
bun add @ashok.patel0609/restful-express-server
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2020-08-25 |
| First published | 2020-08-25 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 5.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Ashok Patel |
| Maintainers | ashok.patel0609 |

## Links

- npm: https://www.npmjs.com/package/@ashok.patel0609/restful-express-server
- Repository: https://github.com/ashok-patel/restful-express-server
- Homepage: https://github.com/ashok-patel/restful-express-server#readme
- Issues: https://github.com/ashok-patel/restful-express-server/issues
- npm.io page: https://npm.io/package/@ashok.patel0609/restful-express-server

## Dependencies (7)

- [cors](https://npm.io/package/cors.md) ^2.8.5
- [dotenv](https://npm.io/package/dotenv.md) ^8.2.0
- [helmet](https://npm.io/package/helmet.md) ^3.21.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
- [express-correlation-id](https://npm.io/package/express-correlation-id.md) ^1.3.1

## Recent versions

- 1.0.2 (latest) — 2020-08-25
- 1.0.1 — 2020-08-25
- 1.0.0 — 2020-08-25

## README

# rest-server
---

#### Usage
+ Install package `npm install @ashok.patel0609/restful-express-server`
+ Create an `.env` file with configs. (_list below_)
+ Require `const {loadConfig, RestServer} = require('@ashok.patel0609/restful-express-server');`
+ Creating instance

```javascript
// Load configurations or create custom object
const config = loadConfiguration();

// Create a server instance
const server = new RestfulExpressServer(config);

//  Load all middle-wares required for rest API development
server.pre();

// router group
let router = server.router();

// bind some routes
router.get('/ashok', (req, res) => {
    res.send({
        now: (Date.now()),
        ashok: true
    })
});
// binding any router
// or middleware
server.use(router);

// bind 404, exception handling, terminating middle-ware and start listening.
server.post().terminating().listen();
```

---

#### Supported config variables
* `BODY_SIZE_LIMIT`, _Default: '100kb'_
* `DEFAULT_ERROR_MESSAGE`, _Default: 'Some error occured'_
* `logger`, _Default: console_
* `injectException`, `Default: () => {}` 
* `PORT`, _Default: 5000_

#### Silent features
+ Correlation id logging on exception.
+ Helmet initialized by default.
+ Compression & JSON Body parsing.
+ CORS enabled.
+ Support for overriding logger.
+ Support for injecting Custom Exception handler.

---
_Source: https://npm.io/package/@ashok.patel0609/restful-express-server · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
