Skip to content

Latest commit

 

History

History
68 lines (49 loc) · 1.41 KB

README.md

File metadata and controls

68 lines (49 loc) · 1.41 KB

Bulletproof Node.js architecture 🛡️

This follows the repository from the blog post 'Bulletproof node.js project architecture'

Development

We use node version 18.18.0

nvm install 18.18.0
nvm use 18.18.0

The first time, you will need to run

npm install

Then just start the backend server with

npm run start && dotnet run

Start the frontend with this command

ng serve

Start the 3D Module with this command

five-server

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