Nightmarish Pawnshop Mystic

    express-rest-es2017-boilerplate

    1.2.1 • Public • Published

    Express ES2017 REST API Boilerplate

    PRs Welcome npm version Build Status Coverage Status bitHound Overall Score Greenkeeper badge

    Boilerplate/Generator/Starter Project for building RESTful APIs and microservices using Node.js, Express and MongoDB

    Features

    • No transpilers, just vanilla javascript
    • ES2017 latest features like Async/Await
    • CORS enabled
    • Uses yarn
    • Express + MongoDB (Mongoose)
    • Consistent coding styles with editorconfig
    • Docker support
    • Uses helmet to set some HTTP headers for security
    • Load environment variables from .env files with dotenv
    • Request validation with joi
    • Gzip compression with compression
    • Linting with eslint
    • Tests with mocha, chai and sinon
    • Code coverage with istanbul and coveralls
    • Git hooks with husky
    • Logging with morgan
    • Authentication and Authorization with passport
    • API documentation geratorion with apidoc
    • Continuous integration support with travisCI
    • Monitoring with pm2

    Requirements

    Getting Started

    Clone the repo and make it yours:

    git clone --depth 1 https://github.com/danielfsousa/express-rest-es2017-boilerplate
    cd express-rest-es2017-boilerplate
    rm -rf .git

    Install dependencies:

    yarn

    Set environment variables:

    cp .env.example .env

    Running Locally

    yarn dev

    Running in Production

    yarn start

    Lint

    # lint code with ESLint 
    yarn lint
     
    # try to fix ESLint errors 
    yarn lint:fix
     
    # lint and watch for changes 
    yarn lint:watch

    Test

    # run all tests with Mocha 
    yarn test
     
    # run unit tests 
    yarn test:unit
     
    # run integration tests 
    yarn test:integration
     
    # run all tests and watch for changes 
    yarn test:watch
     
    # open nyc test coverage reports 
    yarn coverage

    Validate

    # run lint and tests 
    yarn validate

    Logs

    # show logs in production 
    pm2 logs

    Documentation

    # generate and open api documentation 
    yarn docs

    Docker

    # run container locally 
    yarn docker:dev
    or
    docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
     
    # run container in production 
    yarn docker:prod
    or
    docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
     
    # run tests 
    yarn docker:test
    or
    docker-compose -f docker-compose.yml -f docker-compose.test.yml up

    Deploy

    Set your server ip:

    DEPLOY_SERVER=127.0.0.1

    Replace my Docker username with yours:

    nano deploy.sh

    Run deploy script:

    yarn deploy
    or
    sh ./deploy.sh

    Inspirations

    License

    MIT License - Daniel Sousa

    Install

    npm i express-rest-es2017-boilerplate

    DownloadsWeekly Downloads

    7

    Version

    1.2.1

    License

    MIT

    Last publish

    Collaborators

    • danielfsousa