all source files reside in src
folder
all tests files reside in tests
folder
all document files reside in doc
folder
- for rest api documentations open
docs/api/index.html
file - for source code documentations open
docs/jsdoc/index.html
file
a sample user request data flow diagram
you need to install these tools globally in order to be able to run some tasks and scripts:
npm install -g yarn
npm install -g mocha
npm install -g eslint
npm -g install jsdoc
npm install -g nodemon
(optional, for debugging)
express
: server code
winston
: logging
dotenv
: node environment variable handling
babel
: converting ES6 code to standard JS
chai
: test assertion
mocha
: test framework
istanbul
: code coverage
clone this repository:
git clone https://github.com/sepisoad/sample-express-rest-api.git
cd into repository:
cd sample-express-rest-api.git
run yarn command:
yarn
ESLint
is used to catch common programming mistake and also potential security issues in the code through ESLint Plugins
. express-rate-limit
is also used to limit requests which can help prevent DOS/DDOS attacks to some extent.
If you would like to tweak ESLint
you can modify .eslintrc.json
file content.
Also if you want to ignore some files or directories from Lint process you can add their names to .eslintignore
file
in order to run server in production mode run:
yarn start
in order to run server in debug mode run:
yarn debug
in order to apply linter and check the result run:
yarn lint
in order to run test cases run:
yarn test
and last but no least, to test code coverage run:
yarn coverage
to generate documentation from source code run:
yarn jsdoc
to generate api documentation from spec file which is in doc/api/api.yaml
run:
yarn apidoc
in order to see REST API documentation you can go to doc
folder and either open doc.html
which is a pre-compiled and self contained html documentation or use redoc-cli
tool and run api.yml
specification file.