Prise raccrocher lorsque vous envoyez la demande à Nœud-http-proxy Node.js
Je travaille dans Node.js Projet et je veux nœud à agir comme un proxy pour solr
Pour proxy: j'ai utilisé Nœud-http-proxy.
le problème, c'est que le proxy de travail excellentes dans le cas des requêtes get, mais dans le cas de requêtes post, il entraîne la prise de raccrocher exception
Voici un échantillon de mon nœud code
var express = require('express');
var router = express.Router();
var http = require('http');
var httpProxy = require('http-proxy')
var proxyOptions = {
host: "127.0.0.1",
port: 8983
};
var proxy = httpProxy.createProxyServer(proxyOptions);
//It works excellent in GET request
router.get('/solr/*', function(req, res) {
proxy.web(req, res, {
target: 'http://' + proxyOptions.host + ':' + proxyOptions.port
});
})
//the socket hang up in post request
router.post('/solr/*', function(req, res) {
console.log('Post Request');
proxy.web(req, res, {
target: 'http://' + proxyOptions.host + ':' + proxyOptions.port
});
})
Et c'est l'erreur après quelques temps dans le nœud de la console
Error: socket hang up
at createHangUpError (http.js:1476:15)
at Socket.socketOnEnd [as onend] (http.js:1572:23)
at Socket.g (events.js:180:16)
at Socket.emit (events.js:117:20)
at _stream_readable.js:943:16
at process._tickCallback (node.js:419:13)
Des suggestions au sujet de la cause du problème
github.com/nodejitsu/node-http-proxy/issues/... il semble faire quelque chose avec l'aide de l'express
OriginalL'auteur Tareq Salaheldeen | 2014-10-29
Vous devez vous connecter pour publier un commentaire.
Je pense que le problème vient de l'ordre de middleware. À l'aide de bodyParser avant httpProxy va casser les requêtes JSON corps, de sorte httpProxy doit être utilisé avant le bodyParser.
Vous voudrez peut-être vérifier cette pour plus d'informations sur bodyParser.
OriginalL'auteur Hazem Hagrass
Utiliser un callback pour écouter le message d'erreur:
de https://github.com/nodejitsu/node-http-proxy
OriginalL'auteur Ricky
J'ai trouvé la solution à ce problème avec l'aide de ce problème
https://github.com/nodejitsu/node-http-proxy/issues/180#issuecomment-12244852
la solution est d'utiliser un middleware pour proxy avant d'utiliser le bodyparser
exemple de code
OriginalL'auteur Tareq Salaheldeen