Skip to content

Javascript

Dmitry Che edited this page Apr 6, 2016 · 2 revisions

Для создания модуля на Javascript и других скриптовых языках вам нужно лишь упаковать все файлы вашего проекта в обычный zip архив с именем вашего модуля.

Не используйте номер версии в имени архива

Зависимости

Если ваш Javascript модуль зависит от каких-то сторонних библиотек, то вы можете использовать NPM в качестве системы управления зависимостями.

Укажите ваши зависимости в файле package.json, как написано в документации по NPM.

Перед сборкой запустите команду npm install, чтобы директория node_modules оказалась в zip архиве вашего модуля.

Дескриптор

Как и в случае с модулем на Java, ваш архив должен содержать файл дескриптора, в котором необходимо указать имя главного файла, который будет запущен агрегатом при установке модуля.

{
  "main" : "myscript.js"
}

Файл должен иметь имя <имя модуля>.json и располагаться в корне проекта.

API

Главный файл вашего модуля должен выглядеть как стандартный verticle в терминах фреймворка Vertx. Подробно о том, как писать verticle на Javascript написано в документации Vertx.

Простой пример:

var time = require('time');
exports.vertxStart = function() {
    vertx.eventBus().consumer('cmd.clock.time', function(msg) {
        return time.current();
    });
};

Описания всех остальных методов из API можно найти в руководстве по Java.

Формат запроса

Если вы создаете функциональный модуль, который добавляет какие-то голосовые команды к Агрегату, то Агрегат будет отправлять вашему модулю события с JSON сообщением следующего формата:

{
  markup: {
    source : "подстрока из запроса",
    name : "имя шаблона (если есть)",
    value : "каноническое значение шаблона (если есть)",
    data : {
      "имя параметра" : "значение параметра",
      "имя параметра" : "значение параметра",
      ...
    },
    children : [ массив вложенных markup ]
  }
}

Этот объект описывает фразу пользователя, разложенную по компонентам, описанным в шаблоне команды. Это своего роде "семантическое дерево", которое позволяет разобрать фразу по частям для выделения смысловых сущностей для реализации логики вашего модуля.

Russian Version (Русская версия)





IDE


English Version

Main Page

Modules

  • List of available modules

User Guide

  • Where to get

  • How to install

  • How to use

  • Setting up


Developer Guide

Aggregate Architecture

Events List

Command Line


How to Create a Module

  • Java
  • Javascript
  • Typescript
  • Groovy
  • Ruby

Functional Modules

  • Query grammar

  • Pattern syntax

  • Dynamic patterns

  • Standard patterns

Activation Modules

Speech Recognition Modules

Text-to-Speech Modules


IDEs

  • Developing in Eclipse
  • Developing in IntelliJ IDEA

Change Log

Clone this wiki locally