- Idiomatic and configurable logging
- Response compression
- Sane linting and styling guidelines
- Continuous integration using github actions
- Tests
- Code coverage
npm start
Note: This will run a server in the development environment. For information on deploying an express application to production, take a look here.
This directory has 2 files.
logger.js
exports a winston object which we use for logging. You should modify logger.js to customize your logging configuration.morgan.js
exports a pre-configured morgan object to write logs using a stream to winston. It is used to intercept http requests and log the request and response details. For more details, visit the official page for morgan.
Directory for defining routes. I don't think this needs more explanation.
-
On Linux, UNIX and Mac, running the following command adds ./node_modules/.bin to the path.
source ./activate
This makes it easier to run locally installed command packages. This won't be required in many IDEs like Webstorm, but we thought it's a good idea to include it anyway.
-
standard.js has been added as the default linting and styling tool.
Usage:
npm run lint
Formats the entire project, and logs out anything it couldn't fix.
-
mocha is used for testing and chai is used for assertion. chai-http is used to test http endpoints.
Run all tests using:
npm test
-
nyc is used as the default coverage tool.
Upload coverage report to codecov using:
npm run coverage
Note: You will need to add the
CODECOV_TOKEN
to your repository secrets for GitHub actions to work well, and export it as an environment variable to run it locally.
Dependency | Usage |
---|---|
body-parser | POST body parsing middleware. Adds body object to incoming request |
compression | Response compression middleware |
express | Express REST API framework |
morgan | HTTP request logger |
winston | General purpose logger for the application |
nyc | Code Coverage tool |
standard | Linting and styling tool. |
chai | Assertion Library |
chai-http | Middleware for chai to test http endpoints |