0

这是我为测试某些情况而编写的一个小型代理程序。

var httpProxy = require('http-proxy'),
    connect   = require('connect'),
    endpoint  = {
      host:   'googleeeeeee.com', // or IP address
      port:   80,
    },
    staticDir = 'public';

var proxy = new httpProxy.RoutingProxy();
var app = connect()
  .use(connect.logger('dev'))
  .use(function(req, res) {
      proxy.proxyRequest(req, res, endpoint);
      console.log("Respose is " + res.statusCode);
  })
  .use(connect.static(staticDir))
  .listen(80);
  console.log("Server started");

这使用
"http-proxy": "0.8.x" "connect": "2.3.x"

当我运行这个程序并访问它时,通过目标 URL 的 statusCode 是 200 不存在。非常感谢任何帮助。这是如何使用连接框架捕获 404 错误的延续

4

1 回答 1

0

这段代码解决了这个问题

创建了一个名为 errorhandler.js 的文件

module.exports = function() {
        return function(req, res, next) {
                var end = res.end;
                res.end = function(chunk, encoding){
                        res.end = end;
                        res.end(chunk, encoding);
                        console.log("Reponse code is " + res.statusCode);

                };
                next();
        }
}

然后将其包含在中间件中

var httpProxy = require('http-proxy'),
    connect   = require('connect'),
    endpoint  = {
      host:   'googleeeeeee.com', // or IP address
      port:   80,
    },
    staticDir = 'public';

var proxy = new httpProxy.RoutingProxy();
var app = connect()
  .use(require('./errorHandler').errorHandler())
  .use(connect.logger('dev'))
  .use(function(req, res) {
      proxy.proxyRequest(req, res, endpoint);
  })
  .use(connect.static(staticDir))
  .listen(80);
  console.log("Server started");
于 2014-02-13T09:52:06.423 回答