这个命令行工具是用来帮助开发者使用
moleculer框架开发微服务系统和测试代码的。可以使用npm i -g moleculer-cli全局安装,然后你就可以使用moleculer命令了。
如果你直接在命令行中输入
moleculer(=== moleculer start)并敲击回车,系统就会启动Moleculer并进入到mol这种类shell的交互环境中,这种情况是不分配命名空间的,并且默认只启动$node这个服务,服务中共有5个Action方法。下面是这个交互环境提供的命令:
Commands:
help [command...] Provides help for a given command.
q Exit application
actions [options] List of actions
bench [options] <action> [jsonParams] Benchmark a service
broadcast <eventName> Broadcast an event
broadcastLocal <eventName> Broadcast an event locally
call [options] <actionName> [jsonParams] Call an action
dcall [options] <nodeID> <actionName> [jsonParams] Direct call an action
clear [pattern] Clear cache entries
emit <eventName> Emit an event
env List of environment variables
events [options] List of event listeners
info Information about broker
load <servicePath> Load a service from file
loadFolder <serviceFolder> [fileMask] Load all services from folder
nodes [options] List of nodes
services [options] List of services
-
查看系统所有服务:下图是使用脚手架创建的项目,自己写了个
users服务。
image.png -
查看所有
actions,你可以理解为action就是后端开发中常说的增删改查API(除$node这个根服务):
image.png
image.png
后面这个是我使用cli脚手架生成目录后自己写了个
users服务,加上脚手架自动生成的api.rest,greeter.hello,greeter.welcome一共有13个actions,4个services。
- 使用脚手架创建项目:
moleculer init project my-first-microservice-project,脚手架会像cue-cli那样询问你各种组件是否需要,刚开始学习建议全选不需要。以后项目的开发基本会用到脚手架推荐的官方网关,代码检测,单元测试等等组件。需要注意的是moleculer生成模板时候, 其中project是moleculerjs/moleculer-template-project的缩写,官方目前提供了五种模板:project,project-simple,nano,module,addon,五种模板都提供了一个样品服务greeter。模板地址如下:https://github.com/moleculerjs
project和project-simple的区别和名字意思一样,就是简化版。比如.gitignore文件更简洁,dockerfile部署的代码也更为简洁。目前project-simple使用的依赖是moleculer*0.11而不是最新的*0.12,其repl依赖也使用的老版本(也就是说这个项目模板很久没更新了),所以推荐还是使用project模板。有能力有时间的话我倒是希望将公司最终中间层项目整理一下打包一份开源到自己的github,以后类似项目可以使用这样的命令创建基础目录结构和可复用代码:moleculer init username/repo my-project
- 以下是
project模板提问:官方推荐的网关服务,服务间通讯的桥接器,选择缓存方案(Memory/Redis),使用构建部署工具(Docker),代码检测工具(ESLint),单元测试工具(Jest)等等。
image.png
参考资料
- moleculer 官方文档:http://moleculer.services/0.12/docs
- moleculer-cli 工具:http://moleculer.services/0.12/docs/moleculer-cli.html
- 相关开源项目列表:https://github.com/moleculerjs



