nodeModule

nodeModule позволяет запускать действия, разработанные как модули для nodejs.

Описание nodeModule

Лаунчер запускает стандартные действия, исполняемая компонента которых разработана как модуль для nodejs. Он подключает соответствующий файл, обычно с именем server.js через встроенную функцию nodejs require() и, затем, запускает его, передавая параметры, полученные из страницы пользовательского интерфейса действия.

Для подключения nodeModule необходимо прописать в файле config.json с параметрами действия:

{
    ....
    "launcher": "nodeModule",
    "launcherPrms": {
            "startAsThread": true,
            "javaScript": "server.js"

        }
    ....
}

Параметр startAsThread (true|false) указывает, запускать действие в отдельном потоке или подключать код действия к коду launcher как библиотеку. По умолчанию false.

Значением параметра javaScript может быть любой JavaScript файл, не обязательно server.js. nodeModule будет искать этот файл в каталоге с действием.

Исполняемый файл действия server.js должен экспортировать функцию, которая принимает два параметра:

  • args - объект с параметрами, полученными из пользовательского интерфейса в виде {<param1>: <value1>, <param2>: <value2>, ....}
  • callback - функция callback(err, result), где err - объект с ошибкой или null; result - результат, возвращаемый действием для использования в задачах.

server.js может выглядеть следующим образом:

var log = require('../../lib/log')(module);

module.exports = function(args, callback) {
    log.debug('Starting action server "', args.actionName, '" with parameters', args);

    if(!args.o) return callback(new Error('Objects are not selected'));
    callback(null, args.o);
}

Подробнее о разработке действия можно прочитать на странице помощи Action editor