Express.js正文解析器中间件

时间:2015-06-12 20:14:20

标签: node.js express

对不起的头衔感到抱歉;我想不出用简洁的方式来描述我的问题。

我有一台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库并编写我自己的代理代码,但这段代码是对其他内容的快速测试。 我是否有更优雅的方式来检查请求正文将其传递给代理?

0 个答案:

没有答案