2014-02-12 3 views
0

Это небольшая прокси-программа, которую я написал для проверки некоторых случаев.Неверный statusCode от http-proxy

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"

Когда я запускаю эту программу и доступ к нему, то StatusCode является 200 через целевой URL не существует. Любая помощь очень ценится. Это в продолжение с How to catch 404 errors using connect framework

ответ

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");