Nuada CLI was designed to improve your development experience by using ExpressJS and Mongoose tools.
To install the Nuada package globally you can run:
$ npm install nuada -g
or
$ yarn global add nuada
Now the project will bootstrap with nuada-config.json witch going to map the routes of the project. So do not edit, move or delete this file 😉
To start a new project just run:
$ nuada new <project-name>
This command creates an entire folder and pattern structure that will be used to help you to develop. And now it coming up using Typescript 🎉 If you do not specify the project name argument, Nuada CLI will ask you for one.
$ nuada make:controller <controller-name>
This command generates a simple controller and route file to use in your application. You don't have to import your new controller inside router/index.ts, the CLI is going to handle everything for you 🎉.
$ nuada make:validator <validator-name> <field:type>
The make:validator creates a validation file based on the passed parameters.
$ nuada make:model <model-name> <field:type>
The make:model creates a simple model file with fields and types based on Mongo type rules. A validation file is also created following the same rules.
Now you can relate your model with some other one just running:
$ nuada make:model <model-name> <field:relational=<another-model-name>>
The relational field type does not generate a validatable field inside the validation file.
$ nuada make:scaffold <scaffold-name> <field:type>
The make:scaffold command generates a controller, model and validator file ready to use. The field:relational= flag also works here 🎉.
Above you can get a list of valid types:
- String => field:string,
- Number => field:number
- Date => field:date
- Buffer => field:buffer
- Boolean => field:boolean
- Mixed => field:mixed
- Relational => <field:relational=>
$ nuada make:auth
The make:auth command creates a simple authentication structure using JWT ready to use.
$ nuada make:axios
The make:axios command creates an HTTP communication module using Axios.
$ nuada make:multer
The make:multer creates an upload config file using Multer.
Don't forget to import the multer config inside the route file that's going to use the upload service.
import Multer from 'multer';
import MulterConfig from '../config/MulterConfig';
and then use as a middleware:
routes.post(
'/user/:id',
Multer(MulterConfig).single('image'),
controllers.UserController.store
);
$ nuada version (-v)
$ nuada help (-h)
MIT - see LICENSE