generator-astro-nodejs
v1.4.2
Published
Yeoman generator for NodeJS-based microservice
Downloads
21
Maintainers
Readme
Astro Generator NodeJS
Yeoman generator for building RESTful APIs and microservices using Node.js, ExpressJS and Docker support, and fullstack service with ReactJS, Redux, and Redux Observable.
Server Features
- No transpilers, just vanilla javascript
- ES2017 latest features like Async/Await
- CORS enabled
- Uses yarn
- Express
- Consistent coding styles with editorconfig
- Docker support
- Uses helmet to set some HTTP headers for security
- Load environment variables from .env files with dotenv
- Request validation with joi
- Gzip compression with compression
- Linting with eslint with eslint-config-astro
- Tests with jest along with coverage
- Git hooks with husky
- Logging with winston, and winston-cloudwatch for production log stream
- API documentation geratorion with apidoc
- Monitoring with pm2
- Startup boot tasks that can be used for data migrations or pre startup task runner.
- ORM using Sequelize (optional) sequelize with docker-compose migrations
- HTTP using axios with retry axios
Requirements
Getting Started
Install:
npm install -g yo generator-astro-nodejs
Generate a new project:
yo astro-nodejs
Server Side Generator
Generate a new API:
yo astro:api
Generate a new middleware:
yo astro:middleware
Generate a new service:
yo astro:service
Generate a new utility:
yo astro:util
Generate a new boot task:
yo astro:boot
Set environment variables:
cp .env.example .env
Running Locally
yarn dev
Running in Production
yarn start
Lint
# lint code with ESLint
yarn lint
# try to fix ESLint errors
yarn lint:fix
# lint and watch for changes
yarn lint:watch
Sequelize Migrations (optional)
yarn db:migrate
# to undo the migration
yarn db:migrate:undo
Test
# run all tests with Jest with coverage
yarn test
# run unit tests
yarn test:unit
# run integration tests
yarn test:integration
# run all tests and watch for changes
yarn test:watch
Validate
# run lint and tests
yarn validate
Logs
# show logs in production
pm2 logs
Documentation
# generate and open api documentation
yarn docs
Docker
# run container locally
yarn docker:dev
or
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
# run container in production
yarn docker:prod
or
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
# run tests
yarn docker:test
or
docker-compose -f docker-compose.yml -f docker-compose.test.yml up
Credit
This project is forked from Suhendra Ahmad