01. Создание приложения
Создание проекта
Хост morpcluster запускается под nodejs 16. Рекомендуется установленный git Некоторые сервисы потребуют наличие PostgreSql.
Вначале, нужно создать package.json, наример :
{
"name": "mcl-test",
"version": "1.0.0",
"main": "src/index.js",
"scripts": {
"start": "node src/index.js"
},
"type": "module",
"dependencies": {
"@morphcluster/core": "file:./corelibs/core"
}
}
Для подключения основного пакета можно использовать репозиторий через git submodule, в котором они распространяются
git init
git submodule add https://git.cara.bi/morphcluster/corelibs.git ./corelibs/
npm install
Hello world
Hello world может выглядить вот так:
src/index.js
import {ServiceHost,Config,Logger} from '@morphcluster/core'
import HelloWorld from './hello.js'
let host = null
async function main() {
try {
host = new ServiceHost("TestHost")
host.Logger = new Logger()
host.addService(new HelloWorld())
await host.start();
console.log('***All Services Started***')
} catch(e) {
console.error('Failed to start',e)
process.exit(1)
}
}
main().then(()=>{})
src/hello.js
import {ComplexError, Service} from "@morphcluster/core"
export default class HelloWorld extends Service {
constructor() {
super()
this.addRequest({ name : 'hello', http: "GET", anonymous: true })
}
async hello(request, workspace, log) {
console.log("Hello "+workspace+" World",request)
return {result:"Hello result"}
}
async start() {
await super.start()
console.log("My service Started")
}
}
В этом файле, описан сервис HelloWorld, который поддерживает запрос hello.
-
request- параметры, подаваемые в ваш запрос (и сессия) -
workspace- имя рабочего пространства, внутри которого он вызван -
log- экземпляр цепочки лога, создается вызываемым сервисом - возвращаемое значение будет результатом запроса
Как вызвать запрос сервиса будет описано дальше.
Можно попробовать запустить хост командой npm start
В случае успеха будет выведено:
My service Started
HelloWorld: started.
***All Services Started***
No Comments