Javascript 如何在nodejs代理请求中获取响应对象
我有一个nodejs程序,它将传入的请求定向到couchDb服务器 这是密码Javascript 如何在nodejs代理请求中获取响应对象,javascript,node.js,node-http-proxy,Javascript,Node.js,Node Http Proxy,我有一个nodejs程序,它将传入的请求定向到couchDb服务器 这是密码 /*! * Middleware for forwarding a request to CouchDB. */ /** * Module dependencies. */ var httpProxy = require('http-proxy'), util = require('./util'); // Set max sockets opened by proxy var maxSocks
/*!
* Middleware for forwarding a request to CouchDB.
*/
/**
* Module dependencies.
*/
var httpProxy = require('http-proxy'),
util = require('./util');
// Set max sockets opened by proxy
var maxSocks = process.env.MAX_SOCKETS || 2048;
// Set timeout (ms) for proxy requests. Ideally this should be less than 30000ms which is Heroku timeout
var timeout = process.env.TIMEOUT || 25000;
httpProxy.setMaxSockets(maxSocks);
httpProxy.timeout = timeout;
module.exports = function(couch) {
var proxy = new httpProxy.HttpProxy(couch),
couchTarget = couch.target;
return function(req, res, next) {
console.log('Received request: ' + req.url);
req.headers['host'] = couchTarget.host + ':' + couchTarget.port;
req.headers['authorization'] = couch.credentials;
req.headers['x-forwarded-ssl'] = util.isSecureForwardedRequest(req);
var forwardedFor = req.headers['x-forwarded-for'];
req.headers['x-real-ip'] = forwardedFor
? forwardedFor.split(',',1)[0]
: req.connection.remoteAddress;
req.url = couch.path + req.url;
console.log('Proxying to: ' + req.url);
var startTime = new Date().getTime();
var res = proxy.proxyRequest(req, res);
console.log(" Response is " + res + req);
return res;
}
}
res
对象始终未定义。如果响应为404
,我需要处理一个案例。我们如何使用http代理
模块我想proxy.proxyRequest(req,res)代码>不返回任何值,直接更改参数'res'。
所以只需从var res=proxy.proxyRequest(req,res)更改代码即可代码>至代理代理请求(req,res)代码>codevar res=proxy.proxyRequest(请求,res)代码>对我来说似乎是天生的,我认为这里应该是proxy.proxyRequest(req,function(res){})
。我看,不要读你在这里使用的用法。请确认一下。是的,我在那里没有看到。。。这是一个遗留代码,我需要更改它。这个有线代码仍然可以正常工作。我认为changevarres=proxy.proxyRequest(req,res)代码>进入代理代理请求(req,res)代码>可能有用。@FlyingFisher你能回答这个问题吗。它奏效了,我愿意接受这个答案。谢谢你的帮助。我在这里看不到这么小的把戏