Node.js nodejs http代理不转发put请求
我使用http代理和express中间件制作了一个代理。但是,它并不是转发PUT请求,这对于我代理的应用程序来说是必不可少的。我做错了什么 (代理服务器的目的是为代理背后的应用程序提供身份验证。如果有其他方法,我将不胜感激。)Node.js nodejs http代理不转发put请求,node.js,express,http-proxy,Node.js,Express,Http Proxy,我使用http代理和express中间件制作了一个代理。但是,它并不是转发PUT请求,这对于我代理的应用程序来说是必不可少的。我做错了什么 (代理服务器的目的是为代理背后的应用程序提供身份验证。如果有其他方法,我将不胜感激。) 您可以尝试使用http代理的缓冲区功能,如下所示: 或者,express对请求对象执行非标准操作可能会出现问题:请参阅第153页的问题 特别是Marak的回应: “这是一个明显的问题 Connect/Express中间件正在对您的响应对象执行非标准操作,中断了流。请尝试使
您可以尝试使用http代理的缓冲区功能,如下所示: 或者,express对请求对象执行非标准操作可能会出现问题:请参阅第153页的问题 特别是Marak的回应: “这是一个明显的问题 Connect/Express中间件正在对您的响应对象执行非标准操作,中断了流。请尝试使用原始请求模块而不是http代理 如果需要适当的中间件堆栈,请查看“
不知道union是否会解决这个问题,但express似乎改变了http代理无法处理的请求。可能与我尝试过的相同-它不起作用;时间延迟似乎不是问题。
var proxy = new httpProxy.RoutingProxy();
var app = express();
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.engine('ejs', require('ejs-locals'));
app.use(express.logger());
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.session({secret: 'rupert'}));
app.use(flash());
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.use(function(req, res) {
proxy.proxyRequest(req, res, {
host: 'localhost',
port: 8080
});
});
app.use(express.static(__dirname + '/../../public'));
});
app.get('/login', function(req, res){
res.render('login', { user: req.user, message: req.flash('error') });
});
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
function(req, res) {
res.redirect('/');
});
app.get('/logout', function(req, res){
req.logout();
res.redirect('/')
});
app.all('/*', function(req, res, next) {
return next();
});
app.listen(3000,'localhost');