Express.js身体分析器中间件

对不起,标题不好; 我想不出一个简洁的方式来形容我的问题。

我有一个Express服务器,如下所示:

var express = require('express'); var app = express(); var httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer({}); // location (a) app.use(function(req, res){ proxy.web(req, res, { target: 'http://example.net' }); }); app.listen(5050, function(){ console.log("listening on port 5050") }); 

我想要做的是检查请求主体,并根据内容,继续进行next()或处理请求。 就像是:

 // insert at location (a) app.use(function(req, res, next) { if (req.body.foo) { return next(); } res.json({"ok": true, "data": "test data"}); }); 

如果我只是插入body-parser.json()中间件,它将消耗inputstream,并且没有可用于代理请求的数据,从而导致请求永远等待数据。

我知道我可能会丢弃http-proxy库,并写我自己的代理代码,但是这个代码是对其他东西的快速testing。 有没有更优雅的方式来检查请求主体, 并将其传递给代理?