Node-Red доступ к zlib

Как я могу сжать msg.payload для передачи в узел ответа HTTP? Я подозреваю, что это сводится к возможности обратиться к zlib, но поскольку я не могу использовать что-то вроде

var zlib = require("zlib")

Я не могу получить к нему доступ. В основном мой вопрос, вероятно, сводится к тому, как сделать zlib доступным для функционального узла.


person Brendan Murray    schedule 02.11.2015    source источник


Ответы (1)


Чтобы добавить модули узлов к функциональным узлам, вам необходимо включить их в файл settings.js, как описано здесь ближе к концу написания документации по функциям:

Найдите раздел functionGlobalContext в settings.js (обычно находится в ~/.node-red) и отредактируйте его следующим образом:

functionGlobalContext: { zlib:require('zlib') }

Затем вы получите к нему доступ в функциональном узле следующим образом:

context.global.zlib

Вам также необходимо убедиться, что узел zlib установлен с использованием npm, скорее всего, в каталоге ~/.node-red.

npm install zlib
person hardillb    schedule 02.11.2015
comment
Кажется, в настоящее время установка zlib не требуется, так как он включен в Node.js. Итак, после изменения settings.js в функциональном узле Node-RED отлично работает следующее: context.global.zlib.gunzip(msg.payload, function(err, buffer){ if (!err) { node.send( { payload: buffer.toString() }); } else { /* handle error */ } }); return; - person Arjan; 25.07.2016