对不起的头衔感到抱歉;我想不出用简洁的方式来描述我的问题。
我有一台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()
中间件,它会消耗输入流,并且没有可用于代理请求的数据,这会导致请求永远挂起,等待数据。
我知道我可能会放弃http-proxy
库并编写我自己的代理代码,但这段代码是对其他内容的快速测试。 我是否有更优雅的方式来检查请求正文和将其传递给代理?