- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,这是我的第一天......
我正在尝试制作一个小型 Node-Red 应用程序。这可能看起来很愚蠢,但它实际上是我需要做的事情的一个有趣的例子,但不那么幽默。HTTP 输入触发对 Urban Dictionary API 的 HTTP 请求,并抓取术语“Honey Badger”的随机定义。
然后一个函数将字符串分解成碎片并提取实际定义并丢弃所有元垃圾。
然后将该字符串传递到一个模板,该模板在 {{payload}} 行之前和之后包含 HTML 负载,以生成显示 Urban Dictionary 内容的页面,并在每个页面加载时显示随机定义。
我得到了我想要的一切,并且调试模板的输出正在日志中显示 UD 内容,但是在浏览器中我得到的只是 [object OBJECT] 我的文本段落应该在的位置。
据我所知,这是因为该函数输出的是对象,而不是字符串。
我并没有真正完全理解对象是什么。
我以前从未编写过任何 JS 代码,这就是我的起点。
[{"id":"65001585.8c9564","type":"http in","z":"4737d790.fefe58","name":"badger","url":"/Badger","method":"get","upload":false,"swaggerDoc":"","x":76,"y":72,"wires":[["980800c8.6789f","ab39736b.ffbfd"]]},{"id":"980800c8.6789f","type":"http request","z":"4737d790.fefe58","name":"URBAN DICTIONARY","method":"GET","ret":"txt","url":"https://urban.now.sh/random/Honey Badger","tls":"","x":269,"y":106,"wires":[["c0ff5132.822508"]]},{"id":"ab39736b.ffbfd","type":"http response","z":"4737d790.fefe58","name":"http response","x":1016.5551147460938,"y":75.22221374511719,"wires":[]},{"id":"e98c98a8.0a9a28","type":"template","z":"4737d790.fefe58","name":"Template","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<!DOCTYPE html>\n<HTML>\n\n\t<HEAD>\n\t\t<TITLE> [ H O N E Y B A D G E R ] </TITLE>\n\t\t<META HTTP-EQUIV=\"refresh\" CONTENT=\"300\">\n<style>\np.minortext\n{\n font-family: \"Arimo\";\n color:#A9A9A9\n}\np.majortext\n{\n font-family: \"Impact\";\n color:black\n size:20\n}\n\n</style>\n</head>\n\n\t<BODY>\n\t <CENTER>\n\t <Table Width = \"100%\" Bgcolor=\"#A9A9A9\"><TR><TD ALIGN = \"CENTER\">\n\t <a class=\"weatherwidget-io\" href=\"https://forecast7.com/en/n34d93138d60/adelaide/\" data-font=\"Roboto Slab\" data-mode=\"Current\" data-days=\"3\" data-shadow=\"#000000\" data-accent=\"#000000\" data-textColor=\"#ffffff\" data-highColor=\"#ffffff\" data-lowColor=\"#ffffff\" data-sunColor=\"#ffffff\" data-moonColor=\"#ffffff\" data-cloudColor=\"#ffffff\" data-cloudFill=\"#ffffff\" data-rainColor=\"#ffffff\" data-snowColor=\"#ffffff\" >Adelaide, South Australia, Australia</a>\n<script>\n!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=\"https://weatherwidget.io/js/widget.min.js\";fjs.parentNode.insertBefore(js,fjs);}}(document,\"script\",\"weatherwidget-io-js\");\n</script>\n</td><td align = \"center\">\n\n\n</td>\n\n\n\n</TD><TD ALIGN = \"RIGHT\"><IMG SRC=\"LogIn.PNG\"> </TD></TR></Table>\n\t <Table Width = \"500\" Height = \"620\" Border = \"0\">\n\t <TR Width = \"500\" Height = \"320\">\n\t <TD Width = \"500\" Height = \"320\" VALIGN = \"CENTER\">\n\t\t<CENTER>\n\t\t\t <FONT SIZE = \"20\">\n <p class=\"majortext\">\n <IMG SRC=\"HoneyBadger.PNG \" ALT=\"HoneyBadger\"><BR>\n\t\t\t\t <B>H O N E Y B A D G E R</B>\n\t\t\t </P>\n\t\t\t </FONT>\n\t\t\t </TD>\n\t\t\t </TR>\n\t\t\t \t <TR Width = \"500\" Height = \"300\">\n\t <TD Width = \"500\" Height = \"300\" VALIGN = \"TOP\">\n\t\t\t<CENTER>\n\t\t\n\t\t\t<p class=\"minortext\">\n\t\t\t \t\t\t <FONT SIZE = \"5\">\n\t\t\t {{{payload}}}\n </P>\n\t\t</CENTER>\n\t\t </TD>\n\t\t </TR>\n\t\t </TABLE>\n\t\t</CENTER>\n\t</BODY>\n</HTML>\t\t\t \n\n","output":"str","x":830.0000610351562,"y":108.55557250976562,"wires":[["ad7d02ac.52565","ab39736b.ffbfd"]]},{"id":"ad7d02ac.52565","type":"debug","z":"4737d790.fefe58","name":"","active":true,"console":"true","complete":"payload","x":1013.3883666992188,"y":153.77764892578125,"wires":[]},{"id":"c0ff5132.822508","type":"function","z":"4737d790.fefe58","name":"test","func":"var parts = msg.payload.split(\"definition\");\nvar message1 = { payload: parts[0] };\nvar message2 = { payload: parts[1] };\nvar msg2parts = message2.payload.split(\"URL\");\nvar msgsparts1 = {payload: msg2parts[0]};\nvar msgsparts2 = {payload: msg2parts[1]};\n\n\nreturn msgsparts1;\n","outputs":"1","noerr":0,"x":446.75921630859375,"y":106.75926971435547,"wires":[["e132da2c.78b1a8"]]},{"id":"e132da2c.78b1a8","type":"change","z":"4737d790.fefe58","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"\"\"","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"\\n","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"n\\","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":":","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"\"\"\"","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":".\",\"\"","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"\\","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"\"","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"example","fromt":"str","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":628.8887939453125,"y":107.99996948242188,"wires":[["e98c98a8.0a9a28"]]}]
最佳答案
首先,您需要删除 http-in
和 http-response
节点之间的直接链接,因为这不会向发出请求的浏览器返回任何内容。
下一个问题,要使 http-in/http-response 节点正常工作,您需要将 http-in
节点生成的原始消息一直传递到 http -response
节点。您正在 Test
函数节点中生成一个新消息 (msgsparts1
) 对象,这将不起作用。
此外,城市字典的响应是一个 JSON 对象,因此与其尝试使用字符串函数 .split() 将其分割,不如解析 JSON 并访问它的字段要容易得多。您可以通过使用 JSON 节点
解析字符串并使用 更改节点
将描述移至 msg.payload 来完成此操作。
在将消息发送到 http-response
之前,您还需要从 http-request
中删除 header 。您可以使用相同的更改节点
[{"id":"72cc29ed.aa819","type":"http in","z":"8aa94366.b8bde","name":"badger","url":"/Badger","method":"get","swaggerDoc":"","x":90,"y":160,"wires":[["2f9e6174.bde466"]]},{"id":"2f9e6174.bde466","type":"http request","z":"8aa94366.b8bde","name":"URBAN DICTIONARY","method":"GET","ret":"txt","url":"https://urban.now.sh/random/Honey Badger","tls":"","x":200,"y":260,"wires":[["5d7d10da.a757d"]]},{"id":"c6b86250.24357","type":"http response","z":"8aa94366.b8bde","name":"http response","x":960,"y":220,"wires":[]},{"id":"5d1bd9d2.9efad8","type":"template","z":"8aa94366.b8bde","name":"Template","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<!DOCTYPE html>\n<HTML>\n\n\t<HEAD>\n\t\t<TITLE> [ H O N E Y B A D G E R ] </TITLE>\n\t\t<META HTTP-EQUIV=\"refresh\" CONTENT=\"300\">\n<style>\np.minortext\n{\n font-family: \"Arimo\";\n color:#A9A9A9\n}\np.majortext\n{\n font-family: \"Impact\";\n color:black\n size:20\n}\n\n</style>\n</head>\n\n\t<BODY>\n\t <CENTER>\n\t <Table Width = \"100%\" Bgcolor=\"#A9A9A9\"><TR><TD ALIGN = \"CENTER\">\n\t <a class=\"weatherwidget-io\" href=\"https://forecast7.com/en/n34d93138d60/adelaide/\" data-font=\"Roboto Slab\" data-mode=\"Current\" data-days=\"3\" data-shadow=\"#000000\" data-accent=\"#000000\" data-textColor=\"#ffffff\" data-highColor=\"#ffffff\" data-lowColor=\"#ffffff\" data-sunColor=\"#ffffff\" data-moonColor=\"#ffffff\" data-cloudColor=\"#ffffff\" data-cloudFill=\"#ffffff\" data-rainColor=\"#ffffff\" data-snowColor=\"#ffffff\" >Adelaide, South Australia, Australia</a>\n<script>\n!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=\"https://weatherwidget.io/js/widget.min.js\";fjs.parentNode.insertBefore(js,fjs);}}(document,\"script\",\"weatherwidget-io-js\");\n</script>\n</td><td align = \"center\">\n\n\n</td>\n\n\n\n</TD><TD ALIGN = \"RIGHT\"><IMG SRC=\"LogIn.PNG\"> </TD></TR></Table>\n\t <Table Width = \"500\" Height = \"620\" Border = \"0\">\n\t <TR Width = \"500\" Height = \"320\">\n\t <TD Width = \"500\" Height = \"320\" VALIGN = \"CENTER\">\n\t\t<CENTER>\n\t\t\t <FONT SIZE = \"20\">\n <p class=\"majortext\">\n <IMG SRC=\"HoneyBadger.PNG \" ALT=\"HoneyBadger\"><BR>\n\t\t\t\t <B>H O N E Y B A D G E R</B>\n\t\t\t </P>\n\t\t\t </FONT>\n\t\t\t </TD>\n\t\t\t </TR>\n\t\t\t \t <TR Width = \"500\" Height = \"300\">\n\t <TD Width = \"500\" Height = \"300\" VALIGN = \"TOP\">\n\t\t\t<CENTER>\n\t\t\n\t\t\t<p class=\"minortext\">\n\t\t\t \t\t\t <FONT SIZE = \"5\">\n\t\t\t {{{payload}}}\n </P>\n\t\t</CENTER>\n\t\t </TD>\n\t\t </TR>\n\t\t </TABLE>\n\t\t</CENTER>\n\t</BODY>\n</HTML>\t\t\t \n\n","x":780,"y":260,"wires":[["bc66ae55.037f78","c6b86250.24357"]]},{"id":"bc66ae55.037f78","type":"debug","z":"8aa94366.b8bde","name":"","active":true,"console":"true","complete":"payload","x":940,"y":300,"wires":[]},{"id":"5d7d10da.a757d","type":"json","z":"8aa94366.b8bde","name":"","x":390,"y":260,"wires":[["8ecda72f.12eed8"]]},{"id":"8ecda72f.12eed8","type":"change","z":"8aa94366.b8bde","name":"","rules":[{"t":"move","p":"payload.definition","pt":"msg","to":"payload","tot":"msg"},{"t":"delete","p":"headers","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":260,"wires":[["e0951766.77e858","5d1bd9d2.9efad8"]]},{"id":"e0951766.77e858","type":"debug","z":"8aa94366.b8bde","name":"","active":true,"console":"false","complete":"false","x":810,"y":180,"wires":[]}]
关于javascript - Node-Red 中函数的输出在 html 中显示为 [object OBJECT]。模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47606707/
在我输入的 javascript 控制台中/(red|green)/g.exec('红绿红绿') 它返回一个包含两个结果的数组:[“红色”,“红色”] 它不应该返回一个包含 4 个结果的数组吗?如:[
所以我目前正在将一个下降大小的程序从 Rebol 3 迁移到 Red。所述程序依赖于与 C 库 (clang) 的大型绑定(bind)。我已经重写了 Red/System 中的绑定(bind)部分,并
是否可以在节点集群上水平扩展 Node-RED? 找不到任何文档。我的场景是每秒处理数百万个事件并使用 Node-RED 实时处理它们。 最佳答案 我在 Google Groups Node-RED
因此,在尝试在 Red 和 Red/System 之间来回编码值时出现了问题。我想访问传递给例程的对象的内脏。 我注意到 Red Runtime 中有一些函数可以在对象上下文中处理诸如此类、get-v
假设我正在使用 MQTT 协议(protocol)从许多设备接收信息,下图是一个设备 block 的简化版本: 因此,我们还假设所有其他设备具有完全相同的图表,除了将更改为 device2 的主题名称
想象一下我已经连接了一个流程,如下所示: 现在希望重新连接到: 看来我的选择是删除现有的电线,然后重新连接它们。我的问题是: 问题 是否可以将连线从一个节点移动到另一个节点,而不是删除和重新创建? 最
有没有办法将现有的 Node-RED 流文件 myflow.json 部署到运行 Node-RED 的远程计算机? 经过多次谷歌搜索,我偶然发现了this discussion在相关的Google群组
我想了解下例中WPF是如何将字符串值(Red)转换成对应的SolidColorBrush的? 我们如何对自定义 DependencyProperty 做同样的事情? 最佳答案 从字符串到 Brush
我想了解下例中WPF是如何将字符串值(Red)转换成对应的SolidColorBrush的? 我们如何对自定义 DependencyProperty 做同样的事情? 最佳答案 从字符串到 Brush
我想合并来自 3 个不同来源的数据(来自 HTTP msg.payload)。 但是,这些 HTTP 请求可能会被多次调用,因此可以多次接收来自同一源的数据。 [{"id":"7ed13b41.131
我需要 Accel 对象作为有效负载对象的一部分: msg.payload.Accel.x : 1 msg.payload.Accel.y : 2 msg.payload.Accel.z : 3 如何
我正在尝试在 Node-RED 中执行简单的 http get 请求。根据在线文档,我必须传递函数中的参数作为 http 请求节点的输入。我的函数如下所示; msg.url = "https://ap
我有一个简单的 php 页面,它输出一个表(已动态创建)。 页面上的文本都是红色标记的,除非你专门放置一个font color元素并强制它变成黑色。 我使用的是 FF 并安装了 Firebug,所以我
setXxx(Color.red) 和 setXxx(Color.RED) 的定义之间的真正区别是什么? 我在网上找到了以下解释。都是关于命名约定的吗? Java originally defined
我正在使用具有以下内容的 Dockerfile,我在树莓派上使用 resin.io 进行部署。 FROM nodered/node-red-docker:rpi-v8 USER root RUN su
这个问题已经有答案了: Difference between Color.red and Color.RED (3 个回答) 已关闭 9 年前。 Color.RED 之间有什么区别吗?变量和 Colo
我可能是盲人,但我找不到我在许多节点实现中看到的功能的文档,因为有: RED.nodes.createNode() RED.nodes.getNode() RED.nodes.eachNode() R
$('#toggle-linecolor').click(function () { chart.yAxis[0].update({ lineColor: li
我用了this GitHub 存储库,用于使用 Electron 创建 Node-Red 桌面应用程序。 现在我想使用 node-red-admin 向这个应用程序添加身份验证。我怎样才能做到这一点?
两种方法都有效吗?两者都一样。 border:2px solid red; 和 border:2px red solid; 最佳答案 W3.org (官方规范)说 border 简写属性的值是这样的:
我是一名优秀的程序员,十分优秀!