无法处理Mailgun webhook参数以获取对Node的POST请求

时间:2014-09-15 09:22:55

标签: javascript node.js parameters webhooks mailgun

我正在为我的节点后端实现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格式?或者,如果没有,我可以用另一种方式获得参数吗?我看到了其他编程语言的例子,但遗憾的是我的情况下无法使用这些信息。

1 个答案:

答案 0 :(得分:1)

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

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

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

如果这对你有用,请告诉我!如果不是,我们可以考虑尝试别的东西,

亲切的问候,