# Express-advanced

## Description

This is a template for a production ready Express.js server.

## Table of Contents

## Prerequisites

- Node.js v 16.7.0 or higher (required by experimental ``fs.cp`` in node-basic)

## How to use

The folling scripts are available in Package.json:
- `build` - compiles the server.
- `dev` - starts the server with tsx.
- `lint` - lints the typescript code with eslint.
- `start` - starts the server.
- `test` - runs the tests with jest.

## Features
- Import path aliases. 
- Eslint flat config file (needs VSCode setting).
- Jest ??

## References

- [Node.js](https://nodejs.org/en/)
- [Express](https://expressjs.com/)
- [Express error-handling](https://expressjs.com/en/guide/error-handling.html)
- [ESLint](https://eslint.org/)
- [@typescript-eslint Rules](https://eslint.org/docs/rules/)
- Create Next App GH repo
- NPM docs

### Logging

- Morgan
- Winston

### Monitoring (APM - app performance monitoring)

- New Relic
- AppDynamics
- Dynatrace
- DataDog (recommended)
- Prometheus

## Notes

- node-basic uses Experimental fs.cp.
- VSCode eslint setting for flat config file.
