Node.js Express API with vanilla JS. Supports MongoDB(mongoose)
See node-express-typescript-api if you need TypeScript
This generator will help you to build your own Node.js REST API with Express Mongoose.
- suppot ES6/ES7 features
- using tslint followed Airbnb JavaScript Style Guide
- node >= 12
- npm >= 6
- mongodb >= 4.0
First, install Yeoman and generator-node-express-fast-progress using npm (we assume you have pre-installed node.js).
npm install -g yo
npm install -g generator-node-express-fast-progress
Then generate your new project:
yo node-express-fast-progress
.
├── LICENSE
├── README.MD
├── nodemon.json
├── package-lock.json
├── package.json
└── src
├── components
│ ├── User
│ │ ├── index.js
│ │ ├── model.js
│ │ ├── router.js
│ │ ├── service.js
│ │ └── validation.js
│ └── validation.js
├── config
│ ├── connection.js
│ ├── middleware.js
│ └── router.js
├── error
│ └── ValidationError.js
└── server
├── events.js
├── index.js
└── server.js
To start the application in development mode, run:
npm install -g nodemon
npm install
Start the application in dev env:
nodemon
Start the application in production env:
Install forever PM2:
npm install -g pm2
example start with scale on 2 core:
pm2 start ./src/index.js -i 2 --no-daemon
Express server listening on http://localhost:3000/, in development mode The developer mode will watch your changes and re-run the node application automatically.
curl --location --request GET 'localhost:3000/v1/users'
curl --location --request POST 'localhost:3000/v1/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "[email protected]",
"fullName": "Wow Yay"
}'
curl --location --request PUT 'localhost:3000/v1/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"id": "5e50265429fbb59255fb8428",
"fullName": "Yay Foo"
}'
curl --location --request DELETE 'localhost:3000/v1/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"id": "5e502541bb617386c48f6a8c"
}'
- Yeoman has a heart of gold.
- Yeoman is a person with feelings and opinions, but is very easy to work with.
- Yeoman can be too opinionated at times but is easily convinced not to be.
- Feel free to learn more about Yeoman.