This is a Moleculer-based microservices project. Generated with the Moleculer CLI.
To start it:
- run
$npm i - run
$docker-compose upto up the whole stack needed - Get the name of the container for the service:
gophertown - run
$docker exec -it CONTAINER_NAME moleculer connects nats://nats:4222to connect to the REPL - Start the Kata
We want to create a small town: * A town object should have a name and a width/height definition * Create an action to handle the creation of the town on memory * Create an action to get a town data
Add gophers * Create an action to add a gopher to a town: a gopher have a name(hash/id) and a position (x,y) * Create an action to get list all gophers created
Add move a gopher to a town: * Create an action on the gophers to move them to a town (so the town need to follow the list of the living gophers) * Add the posibility to create the gopher directly inside a town
Add start using events: * Delete all action calls made from one service to an other service.
Start the project with npm run dev command.
After starting, open the http://localhost:3000/ URL in your browser.
On the welcome page you can test the generated services via API Gateway and check the nodes & services.
In the terminal, try the following commands:
nodes- List all connected nodes.actions- List all registered service actions.call greeter.hello- Call thegreeter.helloaction.call greeter.welcome --name John- Call thegreeter.welcomeaction with thenameparameter.call products.list- List the products (call theproducts.listaction).
- api: API Gateway services
- greeter: Sample service with
helloandwelcomeactions. - products: Sample DB service. To use with MongoDB, set
MONGO_URIenvironment variables and install MongoDB adapter withnpm i moleculer-db-adapter-mongo.
- db.mixin: Database access mixin for services. Based on moleculer-db
- Moleculer website: https://moleculer.services/
- Moleculer Documentation: https://moleculer.services/docs/0.14/
npm run dev: Start development mode (load all services locally with hot-reload & REPL)npm run start: Start production mode (setSERVICESenv variable to load certain services)npm run cli: Start a CLI and connect to production. Don't forget to set production namespace with--nsargument in scriptnpm run lint: Run ESLintnpm run ci: Run continuous test mode with watchingnpm test: Run tests & generate coverage reportnpm run dc:up: Start the stack with Docker Composenpm run dc:down: Stop the stack with Docker Compose