【问题标题】:Watch folder for created file and upload created file to server using Node RED监视创建文件的文件夹并使用 Node RED 将创建的文件上传到服务器
【发布时间】:2018-04-27 19:32:22
【问题描述】:

目标

我想使用红色节点查看文件夹。如果创建了任何文件,那么我想使用节点红色 http 请求节点将该文件上传到服务器。

我使用 node-red-contrib-wfwatch 模块进行文件夹监视和 http 请求模块进行 api 调用。

问题

我能够在创建的文件上获取更改事件,但是如何将选择文件作为表单数据传递给 http 请求正文。我不知道该怎么做。

我是 Node Red 的新手,所以任何人都可以帮助实现这一目标。

这是我想要实现的目标

Structure of Node red display here

【问题讨论】:

    标签: node.js file-upload watch node-red


    【解决方案1】:

    node-red-contrib-wfwatch 节点没有获取文件,只是发送带有以下负载的消息:

    {
      changeType: "update",
      filePath: "/tmp/foo"
    }
    

    为此,您需要使用 文件 节点。但在此之前,因为 File 节点希望文件名在 msg.filename 而不是 msg.payload.filePath 您需要添加 Change 节点:

    并像这样连接整个事物:

    只需用您的 HTTP 请求替换 Debug 节点即可。

    【讨论】:

    • 我很高兴!如果您能接受这个答案,我将不胜感激:)
    • 是的,当然,但我在应用您的解决方案时没有什么问题。我如何使用form-data 发布文件或图像,因为目前我从 api 收到错误JSON parse error。在后端,我使用带有 connect-busboy 模块的节点进行文件上传。我通过邮递员上传文件成功。但不是 Node-red。再次感谢您的宝贵时间
    • 好答案,但无需在 change 规则中调用 JSONata 表达式解析器,因为您没有使用任何表达式逻辑——相反,我会选择 msg. 下拉菜单,然后输入文本框中的“payload.filePath”(不带引号)
    最近更新 更多