【问题标题】:Using node module bignum in a node-red flow在节点红色流中使用节点模块 bignum
【发布时间】:2015-06-30 18:35:33
【问题描述】:

我正在尝试在节点红色流中的函数中使用节点模块 bignum。我已将节点模块安装在与 settings.js 相同的文件夹中。我已编辑 settings.js 以包含

functionGlobalContext: {
   bignum:require('bignum')
},

我的函数看起来像这样

var bignum = context.global.bignum;

var b = bignum('782910138827292261791972728324982')
    .sub('182373273283402171237474774728373')
    .div(8)

msg.payload = b;

return msg;

由于某种原因,它只返回这个

[msg.payload] : object
{}

【问题讨论】:

    标签: javascript node.js node-red


    【解决方案1】:

    bignum 作为 msg.payload 传递,只是在调试面板中没有正确呈现

    这可以通过以下流程进行检查

    [{"id":"4559ab0b.848204","type":"function","name":"","func":"var bignum = context.global.bignum;\n\nvar b = bignum('782910138827292261791972728324982')\n    .sub('182373273283402171237474774728373')\n    .div(8);\n\nmsg.payload = b;\n\nconsole.log(\"%j\", msg.payload);\nconsole.log(\"%j\", b);\nconsole.log(b);\nconsole.log(\"%j\", msg);\n\nreturn msg;","outputs":1,"noerr":0,"x":413,"y":186,"z":"6dffe97f.085fd8","wires":[["152e806f.249de8"]]},{"id":"28153711.bd78f","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":203,"y":140,"z":"6dffe97f.085fd8","wires":[["4559ab0b.848204"]]},{"id":"62001fd9.03c0c8","type":"debug","name":"","active":true,"console":"false","complete":"false","x":712,"y":191,"z":"6dffe97f.085fd8","wires":[]},{"id":"152e806f.249de8","type":"function","name":"","func":"console.log(\"2\");\nconsole.log(msg.payload);\nreturn msg;","outputs":1,"noerr":0,"x":543,"y":256,"z":"6dffe97f.085fd8","wires":[["62001fd9.03c0c8"]]}]
    

    我会打开一个问题来查看here


    更新

    这很可能是因为 bignum 没有实现 toString 方法,所以 Node-RED 不知道如何渲染输出。解决此问题的最佳方法可能是提出 bignum 而不是 Node-RED 的问题。


    更新 2

    Node-RED 问题具有最新信息

    https://github.com/node-red/node-red/issues/690

    【讨论】:

    • 感谢控制台日志记录帮助。如果您将 msg.payload 更改为 message.payload = b.toString();,则此方法有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2022-09-27
    相关资源
    最近更新 更多