【发布时间】:2015-11-02 23:09:56
【问题描述】:
如何压缩 msg.payload 以输入 HTTP 响应节点?我怀疑这归结为能够解决 zlib,但因为我不能使用类似的东西
var zlib = require("zlib")
我无法访问它。基本上我的问题可能归结为如何使 zlib 可用于功能节点。
【问题讨论】:
标签: gzip zlib http-compression node-red
如何压缩 msg.payload 以输入 HTTP 响应节点?我怀疑这归结为能够解决 zlib,但因为我不能使用类似的东西
var zlib = require("zlib")
我无法访问它。基本上我的问题可能归结为如何使 zlib 可用于功能节点。
【问题讨论】:
标签: gzip zlib http-compression node-red
要将节点模块添加到函数节点,您需要将它们包含在 settings.js 文件中,如编写函数文档末尾附近的here 中所述:
在 settings.js 中找到 functionGlobalContext 部分(通常在 ~/.node-red 中找到)并编辑如下:
functionGlobalContext: { zlib:require('zlib') }
然后您将在函数节点中访问它,如下所示:
context.global.zlib
您还需要确保 zlib 节点是使用 npm 安装的,很可能在 ~/.node-red 目录中
npm install zlib
【讨论】:
settings.js 之后,以下在 Node-RED 功能节点中可以正常工作:context.global.zlib.gunzip(msg.payload, function(err, buffer){ if (!err) { node.send( { payload: buffer.toString() }); } else { /* handle error */ } }); return;