软件包微服务
微服务软件包根目录必须有一个 package.service.js
文件。
package.service.js
steedos 软件包的根目录中的 package.service.js
是软件包微服务的加载入口。
const packageJSON = require('./package.json');
module.exports = {
name: packageJSON.name,
namespace: "steedos",
/*
After mixin @steedos/service-package-loader, the package service will
automatically scan and load metadata files from subfolders upon startup.
*/
mixins: [require('@steedos/service-package-loader')],
metadata: {
$package: {
name: packageJSON.name,
version: packageJSON.version,
path: __dirname,
isPackage: true
}
},
/**
* Settings
*/
settings: {
},
/**
* Dependencies
*/
dependencies: [],
/**
* Actions
*/
actions: {
},
/**
* Events
*/
events: {
},
/**
* Methods
*/
methods: {
},
/**
* Service created lifecycle event handler
*/
async created() {
},
/**
* Service started lifecycle event handler
*/
async started() {
},
/**
* Service stopped lifecycle event handler
*/
async stopped() {
}
};
命名空间
节点的命名空间用于在同一网络上分割您的节点。
必须设置为 steedos
。
混入 (mixins)
混入是一种灵活的方式,用于为 Moleculer 服务分发可重用的功能。服务构造函数将这些混入与当前模式合并。当服务使用混入时,混入中存在的所有属性都会“混合”到当前服务中。
提示
混入 @steedos/service-package-loader
之后,软件包服务将在启动时自动扫描子文件夹并加载元数据文件。
依赖项
如果您的服务依赖于其他服务,请在模式中使用 dependencies 属性。服务在调用已启动的生命周期事件处理程序之前,等待依赖的服务。
如果您正在开发的软件包依赖于另一个软件包的元数据,您可以使用 dependencies
来控制软件包的加载顺序。例如,如果合同管理软件包依赖于主数据软件包的元数据,您可以如下定义:
module.exports = {
name: "@steedos-labs/contract",
dependencies: ["@steedos-labs/master"],
}