Описание 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