我正在为我的节点后端实现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格式?或者,如果没有,我可以用另一种方式获得参数吗?我看到了其他编程语言的例子,但遗憾的是我的情况下无法使用这些信息。
答案 0 :(得分:1)
如果你要使用ExpressJS,我会使用body-parse - 它简化了很多POST请求的解析。
...
app.post('/endpoint', function(req, res){
var RESOURCE = req.body.RESOURCE;
...
});
当POST发送到端点时,您可以解析请求的资源以使其执行操作!
如果这对你有用,请告诉我!如果不是,我们可以考虑尝试别的东西,
亲切的问候,