Hub危険から始まる
11097 ワード
の主な目標の一つHubHazard セットアップのステップをできるだけ簡単にすることです.この記事では、Hub危険プロジェクトを作成する最も簡単な方法を提示しますHubHazard Basic Template . 要するに から新しいリポジトリを作成するtemplate . リポジトリをクローンする 依存関係をインストールする サーバを起動する
Gitリポジトリを作成することによってプロジェクトを起動するのは常に良いアイデアです.に移動HubHazard Basic Template github repository を押すと
次の画面でリポジトリに名前を付け、
クローニング後、すべてのパッケージを実行してインストールすることを忘れないでください.
The HubHazard を実行しているNest.js フレームワーク
The Nest.js フレームワークamazing documentation , しかし、あなたはそれが本当に使用する方法を知っている必要はありませんHubHazard . それは何かを知って傷つくことはありませんmodules and providers けれども.
あなたの自動化に取り組んで開発モードでサーバーを実行することができます.それを実行するには
それで、フードの下で本当にここで起こっていること?遊びには4つの主要な要素があります.
オートメーション-オートメーションは、そのトリガーによって記述された条件が満たされたときに実行されるコードの一部です.それぞれの自動化はAutomation クラス.彼らはAutomationsService . automationsservice .
イベントサービス-彼らは、購読された自動化にそれらのイベントを送るイベント工場として機能します.各イベントサービスはすべての加入者を知っている.それぞれのイベントサービスはEventsService クラス.彼らはAutomationsService .
自動化サービス-自動化とイベントサービスのクラス管理登録.それはすべて一緒にリンクします. の場合template project 私たちには、1つのイベントサービスと1つのオートメーションだけがあります:
すべては
時
すべてautomations を実装する必要があります
次の記事ではセットアップを説明しますHubHazard サーバオンRaspberry Pi Zero W - この目的に最適な5ドルのコンピュータ.
npm install
) npm run start:dev
) テンプレートからgithubリポジトリを作成する
Gitリポジトリを作成することによってプロジェクトを起動するのは常に良いアイデアです.に移動HubHazard Basic Template github repository を押すと
Use this template
その中のリポジトリを作成するボタン.次の画面でリポジトリに名前を付け、
Create a repository from template
ボタン.あなたは、新しいレポがクローンされる準備ができています.クローニング後、すべてのパッケージを実行してインストールすることを忘れないでください.
npm install
プロジェクトの起動とネスト。js基本
The HubHazard を実行しているNest.js フレームワーク
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses modern JavaScript, is built with TypeScript (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).
The Nest.js フレームワークamazing documentation , しかし、あなたはそれが本当に使用する方法を知っている必要はありませんHubHazard . それは何かを知って傷つくことはありませんmodules and providers けれども.
あなたの自動化に取り組んで開発モードでサーバーを実行することができます.それを実行するには
start:dev
スクリプトnum run start:dev
プロジェクトをコンパイルして実行します.プロジェクトテンプレートには、15秒ごとにメッセージを表示する例の自動化が付属しています.フードの下で何が起こるか
それで、フードの下で本当にここで起こっていること?遊びには4つの主要な要素があります.
オートメーション-オートメーションは、そのトリガーによって記述された条件が満たされたときに実行されるコードの一部です.それぞれの自動化はAutomation クラス.彼らはAutomationsService . automationsservice .
イベントサービス-彼らは、購読された自動化にそれらのイベントを送るイベント工場として機能します.各イベントサービスはすべての加入者を知っている.それぞれのイベントサービスはEventsService クラス.彼らはAutomationsService .
自動化サービス-自動化とイベントサービスのクラス管理登録.それはすべて一緒にリンクします.
すべては
app.module.ts
ファイル.これはサーバのメインモジュールです.すべての中古イベントサービスと自動化はここで登録されるべきです.import { AutomationsModule, TimerEventsModule } from '@hubhazard/core';
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { BasicAutomation } from './automations/basic-automation';
@Module({
imports: [
AutomationsModule,
ConfigModule.forRoot({ isGlobal: true }),
TimerEventsModule,
],
providers: [BasicAutomation],
})
export class AppModule {}
すべてのイベントサービスimports
は自動的にAutomationsService . 同様にすべての自動化providers
は自動的にAutomationsService . すべての新しい自動化を作成するときに覚えておく必要がありますapp.module.ts
ファイル.時
BasicAutomation
が登録され、TimerEventsService . The TimerEventsService それが扱うことができるものを捜して自動化の走査トリガー.の場合BasicAutomation
自動化を15秒ごとに実行するよう求めているトリガー定義が1つあります.The TimerEventsService それを覚えて、送信されますautomation event 直接その自動化に15秒ごとに.すべてautomations を実装する必要があります
handleEvent
関数.この関数はイベントサービスで呼び出され、automation events .import { Automation, TimerTrigger } from '@hubhazard/core';
import { Injectable } from '@nestjs/common';
@Injectable()
export class BasicAutomation extends Automation {
readonly name = 'Basic automation';
readonly triggers = [TimerTrigger.every(15, 'seconds')];
private counter = 0;
// Handle the timer event
async handleEvent() {
this.counter++;
console.log(`Triggered the '${this.name}' ${this.counter} times.`);
}
}
次へ
次の記事ではセットアップを説明しますHubHazard サーバオンRaspberry Pi Zero W - この目的に最適な5ドルのコンピュータ.
Reference
この問題について(Hub危険から始まる), 我々は、より多くの情報をここで見つけました https://dev.to/xkonti/starting-with-hubhazard-5ef2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol