Node-RED:Руководство пользователя/Настройки

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Настройки[1]

В этой статье будет рассказываться о свойствах для настройки Node-RED.

Если Node-RED запускается в виде независимого приложения, то эти свойства будут считываться из файла «settings.js». Поиск этого файла советуем вести следующем порядке:

  1. Его месторасположение задано с помощью аргумента командной строки «--settings|-s»
  2. Он находится в директории пользователя, если его месторасположение было задано с помощью аргумента командной строки «--userDir|-u»
  3. Он в директории пользователя, используемой по умолчанию: «$HOME/.node-red/settings.js»
  4. Он в директории, куда был установлен Node-RED

Вместе с Node-RED по умолчанию идет файл «settings.js», который будет использоваться, если пользователь не предоставит Node-RED файл с собственными настройками. Этот исходный файл (вот ссылка на него на GitHub) можно использовать в качестве отправной точки для создания собственного файла настроек.

Примечание

Файл «settings.js» представляет собой JavaScript-объект. Поэтому, если вы хотите задать собственные настройки Node-RED, вам также нужно понимать, как модифицировать JavaScript-объекты, добавляя новые и модифицируя уже имеющиеся пары «ключ/значение».

Если Node-RED встроен в другое приложение, настройки задаются с помощью RED.init(). Однако во встроенном режиме некоторые свойства игнорируются, т.к. вместо них используются свойства приложения, в которое Node-RED был встроен.

Настройки среды выполнения

  • «flowFile»
    • Файл, используемый для хранения потоков. По умолчанию: «flows_<название_хоста>.json»
  • «userDir»
    • Директория для хранения всех пользовательских данных вроде потока, учетных данных и всех библиотечных данных. По умолчанию: «$HOME/.node-red»
  • «nodesDir»
    • Директория для поиска дополнительно установленных нод. По умолчанию: «$HOME/.node-red/nodes», но в этом свойстве можно задать поиск в дополнительной директории, благодаря чему ноды можно установить вне места установки Node-RED
  • «uiHost»
    • Интерфейс для прослушивания входящих подключений. По умолчанию: «0.0.0.0» – все IPv4-интерфейсы.
    • Только для работы Node-RED в независимом режиме.
  • «uiPort»
    • Порт, используемый для обслуживания UI редактора Node-RED. По умолчанию: «1880».
    • Только для работы в независимом режиме.
  • «httpAdminRoot»
    • Корневой URL для UI редактора Node-RED. Если задать здесь «false», все админские конечные точки будут отключены – и конечные точки API, и конечные точки UI редактора. Чтобы отключить лишь UI редактора, воспользуйтесь свойством «disableEditor» (см. ниже). По умолчанию: «/».
  • «httpAdminAuth»
httpAdminAuth: {user:"nol", pass:"5f4dcc3b5aa765d61d8327deb882cf99"}
Свойство «pass» – это MD5-хэш пароля. Чтобы сгенерировать кэш, можно воспользоваться командой ниже:
node -e "console.log(require('crypto').createHash('md5').update('YOUR PASSWORD HERE','utf8').digest('hex'))"
Только для работы в независимом режиме.
  • «httpNodeRoot»
    • Корневой URL для нод, предоставляющих конечные точки HTTP. Если задать здесь «false», все конечные точки HTTP, предоставляемые нодами, будут отключены. По умолчанию: «/».
  • «httpNodeAuth»
  • «httpRoot»
    • Задает корневой URL для UI редактора Node-RED и нод, предоставляющих конечные точки. Переписывает значения, заданные в «httpAdminRoot» и «httpNodeRoot».
  • «https»
    • Активирует HTTPS при помощи модуля «fs», содержащего настройки HTTPS (см. тут)
Только для работы Node-RED в независимом режиме.
  • «disableEditor»
    • Если задать здесь «true», среда выполнения перестанет обслуживать UI редактор. Админские API это не затронет. Значение по умолчанию: «false».
  • «httpStatic»
    • Папка на локальной машине для статического веб-контента, который будет обслуживаться на URL самого верхнего уровня – «/». Кроме того, при использовании этого свойства необходимо использовать свойство «httpAdminRoot», чтобы задать для UI редактора не «/», а какой-нибудь другой URL.
Только для работы Node-RED в независимом режиме.
  • «httpStaticAuth»
    • Активирует базовую HTTP-аутентификацию для статического веб-контента. Формат см. в «httpAdminAuth».
  • «httpNodeCors»
    • Активирует функцию CORS (от англ. «cross-origin resource sharing», т.е. «совместное использование ресурсов между разными источниками») для нод, предоставляющих конечные точки HTTP (см. тут).
  • «httpNodeMiddleware»
    • Здесь задается HTTP-функция промежуточной обработки, добавляемая ко всем нодам «http in». Позволяет задать любой код, необходимый этим нодам (например, аутентификацию). Формат для функции промежуточной обработки см. тут.
	httpNodeMiddleware: function(req,res,next) {
    	// Здесь пишем код, выполняемый при запросе. 
   	// Если запрос идет к релевантной ноде «http in»,
// обязательно вызываем функцию next().
}
  • «logging»
    • В данный момент поддерживается только логирование в консоль. В этом свойстве можно задать разные уровни логирования:
      • «fatal» – сообщения только о тех ошибках, из-за которых приложением становится невозможно пользоваться
      • «error» – сообщения об ошибках, считающихся фатальными при определенных запросах + сообщения «fatal»
      • «warn» – сообщения о не фатальных ошибках + сообщения «error» и «fatal»
      • «info» – общие данные о работе приложения + сообщения «warn», «error» и «fatal»
      • «debug» – данные о работе приложения, но подробнее, чем в «info» + сообщения «info», «warn», «error» и «fatal»
      • «trace» – очень подробная информация о работе приложения + сообщения «debug», «info», «warn», «error» и «fatal»
По умолчанию в этом свойстве стоит значение «info». Для встраиваемых устройств, имеющих небольшое количество flash-памяти, имеет смысл задать здесь настройку «fatal», чтобы минимизировать количество данных, записываемых на «диск».

Настройки редактора

  • «adminAuth»
    • Активирует защиту паролем для админского API и API редактора Node-RED. Более подробно читайте по этой ссылке.
  • «paletteCategories»
    • Задает порядок категорий в «палитре» Node-RED. Если какой-то категории в этом списке не будет, она будет добавлена в конце «палитры». Если в этом свойстве не будет задано ничего, будет задан порядок ниже, используемый по умолчанию:
['subflows', 'input', 'output', 'function', 'social', 'storage', 'analysis', 'advanced'],
Примечание

До тех пор, пока пользователь не создаст подпоток, категория «subflow» будет пуста и не будет показываться в «палитре» Node-RED.

Внешний вид редактора

В свойстве «editorTheme» можно изменить внешний вид редактора Node-RED. Все его подсвойства опциональны.

editorTheme: {
    page: {
        title: "Node-RED",
        favicon: "/absolute/path/to/theme/icon",
        css: "/absolute/path/to/custom/css/file"
    },
    header: {
        title: "Node-RED",
        // Чтобы удалить изображение, задайте здесь «null»:
        image: "/absolute/path/to/header/image",
        url: "http://nodered.org"  // опциональный URL, к которому
                                   // будет вести текст/картинка
                                   // в «шапке» редактора Node-RED
    },
    deployButton: {
        type:"simple",
        label:"Save",
        // Чтобы удалить изображение, задайте здесь «null»:
        icon: "/absolute/path/to/deploy/button/image"
    },
    menu: {  // Здесь можно скрыть ненужные меню, используя их ID.
             // Полный список см. в «editor/js/main.js:loadEditor»:
        "menu-item-import-library": false,
        "menu-item-export-library": false,
        "menu-item-keyboard-shortcuts": false,
        "menu-item-help": {
            label: "Alternative Help Link Text",
            url: "http://example.com"
        }
    },
    userMenu: false, // Скрыть меню пользователя,
                     // даже если включена настройка «adminAuth»:
    login: {
        // Изображение размером 256x256:
        image: "/absolute/path/to/login/page/big/image"
    }
},

Панель управления

  • «ui»
    • Если вы установили опциональные ноды «node-red-dashboard», здесь можно задать путь для них относительно пути, заданном в «httpRoot»:
ui : { path: mydashboard },

Настройка нод

В файле «settings.js» также можно задать настройки для разных типов нод:

  • «functionGlobalContext»
    • Для нод «Function». В этом свойстве можно задать объекты, которые будут доступны функциям нод «Function» в глобальном контексте. Например, если задать здесь:
functionGlobalContext: { osModule:require('os') }
То затем вы сможете получить доступ к этому модулю в ноде «Function»:
var myos = global.get('osModule');
Примечание: До выхода версии 0.13 доступ к глобальному контексту осуществлялся при помощи подсвойства «context»:
context.global.foo = "bar";
var osModule = context.global.osModule;
Этот метод по-прежнему используется, но устарел в пользу функций global.get() и global.set(). Возможно, в будущих релизах Node-RED появится возможность постоянного хранения контекстных данных.
  • «debugMaxLength»
    • Для нод «Debug». Здесь можно задать максимальный размер (в символах) для любых сообщений, отправляемых на вкладку «Debug» на боковой панели. По умолчанию: «1000».
  • «mqttReconnectTime»
    • Для нод «MQTT». Здесь можно задать, сколько времени (в миллисекундах) пройдет, прежде чем будет предпринята попытка повторного MQTT-подключения. По умолчанию: «5000».
  • «serialReconnectTime»
    • Для нод «Serial». Здесь можно задать, сколько времени (в миллисекундах) пройдет, прежде чем будет предпринята попытка повторного подключения к последовательному порту. По умолчанию: «5000».
  • «socketReconnectTime»
    • Для нод «TCP». Здесь можно задать, сколько времени (в миллисекундах) пройдет, прежде чем будет предпринята попытка повторного подключения. По умолчанию: «10000».
  • «socketTimeout»
    • Для нод «TCP». Здесь можно задать время таймаута (в миллисекундах) для работы с серверным TCP-сокетом. По умолчанию: «120000».

См.также

Внешние ссылки