Skip to content

ajitfawade/node-boilerplate

Repository files navigation

Node Boilerplate 🛡️

This is a sample Boilerplate which can be used for starting any new Microservice project using Nodejs.

This example repository has taken a lot of inputs from the blog post 'Bulletproof node.js project architecture'

Development

We use node version 10.20.1

nvm install 10.20.1
nvm use 10.20.1

The first time, you will need to run

npm install

Then just start the server with

npm run start

It uses nodemon for livereloading :peace-fingers:

API Validation

By using celebrate the req.body schema becomes clary defined at route level, so even frontend devs can read what an API endpoint expects without need to writting a documentation that can get outdated quickly.

route.post(
  '/signup',
  celebrate({
    body: Joi.object({
      name: Joi.string().required(),
      email: Joi.string().required(),
      password: Joi.string().required(),
    }),
  }),
  controller.signup,
);

Example error

{
  "errors": {
    "message": "child \"email\" fails because [\"email\" is required]"
  }
}

Read more about celebrate here and the Joi validation API

HitCount