Starter application for building APIs with Express.js
Comes with:
- ES6 features/modules
- ES7 async/await
- Bookshelf ORM and Knex migrations
- PostgreSQL (default) with support for MySQL and SQLite
- API documentation using swagger-ui and swagger-jsdoc
- ESLint for code linting
- Request validation using Joi
- Logging using winston
- Application configuration using dotenv
- Tests using mocha, supertest and chai
Clone the repository, install the dependencies and get started right away.
$ git clone [email protected]:mesaugat/express-api-es6-starter.git <application-name>
$ cd <application-name>
$ rm -rf .git
$ npm install # or yarn
Make a copy of .env.example
as .env
and update your application details and database credentials. Now, run the migrations and seed the database.
$ npm run migrate:latest
$ npm run seed
Finally, start the application.
$ npm run start:dev (For development)
$ npm start (For production)
Navigate to /api-docs
for the API documentation.
To run the tests you need to create a separate test database. Don't forget to update your .env
file to include the name of the test database and run the migrations.
$ NODE_ENV=test npm run migrate:latest
$ npm test
Install the mysql driver first. Update these lines DB_CLIENT='pg'
and DB_PORT='5432'
in your .env file to DB_CLIENT='mysql'
and DB_PORT='3306'
respectively.
You can remove the pg driver if you like to.
$ npm install mysql --save
$ npm uninstall pg --save
That's it, you are ready to roll.
For contribution and feature requests, please create an issue first.
express-api-es6-starter is under MIT License.