Я использую expressjs для создания и API.
У меня также есть прокси-сервер для направления запросов на мой API-сервер, как показано ниже:
Но на сервере API тело запросов POST и PUT не может проанализировать, и сервер зависает.
// on proxy server
const httpProxy = require('http-proxy');
const proxy = httpProxy.createProxyServer({});
app.all('/api/*', function(req, res){
proxy.web(req, res, { target: 'http://example.com:9000' });
});
proxy.on('proxyReq', function(proxyReq, req, res, options) {
if ((req.method == "POST" || req.method == "PUT") && req.body) {
proxyReq.write(JSON.stringify(req.body));
proxyReq.end();
}
});
proxy.on('proxyRes', function(proxyRes, req, res) {
var body = '';
proxyRes.on('data', function(chunk) {
body += chunk;
});
proxyRes.on('end', function() {
});
});
Часть сервера API для анализа содержимого тела.
// on api server
app.use(bodyParser.json({ }));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(compress());
app.use(methodOverride());
Я понял, что он цепляется в bodyParser()
промежуточном программном обеспечении.
Любая помощь будет принята с благодарностью. Я уже испробовал различные решения на stackoverflow, и ни один из них мне не помог.