【问题标题】:Unable to handle Mailgun webhook params for POST request to Node无法处理对节点的 POST 请求的 Mailgun webhook 参数
【发布时间】:2014-11-08 18:47:24
【问题描述】:

我正在为我的节点后端实现 Mailgun 的 webhook。处理参数时遇到问题。我可以读取参数的唯一方法是解析正文,在这种情况下,服务器如下所示:

var server = http.createServer(function (req, res) {
 var body = "";
 if (req.method == 'POST') {
   req.on('data', function (data) {
     body += data;
   });    
   req.on('end', function(data) {
     body += data;
     console.log("response: " + body);      
   });
}).listen(8080);

然后将输出正文格式化如下:

(...)
--5bb8ffb8-e325-492c-b789-3d807dc78e74
Content-Disposition: form-data; name="Message-Id"

<20130503182626.18666.16540@sandbox94d44395c5264485ab775855eb8ff309.mailgun.org>
--5bb8ffb8-e325-492c-b789-3d807dc78e74
Content-Disposition: form-data; name="X-Mailgun-Sid"

WyIwNzI5MCIsICJhbGljZUBleGFtcGxlLmNvbSIsICI2Il0=
--5bb8ffb8-e325-492c-b789-3d807dc78e74
Content-Disposition: form-data; name="attachment-count"

1

有什么方法可以解析正文以将其转换为 json 格式?或者如果不能,我可以通过其他方式获取参数吗?我看到了其他编程语言的示例,但遗憾的是这些信息无法用于我的案例。

【问题讨论】:

    标签: javascript node.js parameters webhooks mailgun


    【解决方案1】:

    如果你要使用 ExpressJS,我会使用 body-parse - 它大大简化了 POST 请求的解析。

    ...
    app.post('/endpoint', function(req, res){
      var RESOURCE = req.body.RESOURCE;
    ...
    });
    

    当一个 POST 被发送到端点时,您可以解析请求的资源以使其执行操作!

    如果这对您有用,请告诉我!如果没有,我们可以尝试其他方法,

    亲切的问候,

    【讨论】:

    猜你喜欢
    • 2020-12-25
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多