This follows the repository from the blog post 'Bulletproof node.js project architecture'
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:
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]"
}
}