2013-07-24 50 views
0

我做的是一個節點快遞網絡服務器上運行的Web應用程序。我有路線目前設置是這樣的:Node.js的快遞路線不要再追有些甚至變得通配符

app.all('*', function(req, res){ 
    var url = req.originalUrl; 

    if(url == '/'){ 
     res.render('index.html'); 
    } else { 
     console.log("**USING * HANDLER"); 
     var string = url.substr(1, url.length); 
     res.render(string); 
    } 

}); 

我有它設置這樣的原因,需要注意從index.html文件至少15個鏈接的一個通行證。

現在低於,我也有:

app.get('/proxy*', function (req, res) { 
    console.log('**USING /proxy HANDLER'); 
    //return proxy.proxyRequest(req, res, proxyOptions); 
}); 

那是因爲我的服務器使得像一些要求:

GET /proxy.php?url=http%3A%2F%2Fa.tile.cloudmade.com%2FBC9A493B41014CAABB98F0471D759707%2F997%2F256%2F0%2F0%2F0.png

我需要單獨處理這些請求。問題在於,沒有任何打印就可以得到很多東西。以下是一些GETS列表:

**USING * HANDLER 
GET/304 8ms 
**USING * HANDLER 
GET /leaflet.html 304 5ms 
GET /leaflet/dist/leaflet.js 304 1ms 
GET /js/jquery/jquery-1.4.2.js 304 1ms 
GET /js/osgjs/osg-debug-0.0.7.js 304 2ms 
GET /js/osgjs/osg-extras.js 304 3ms 
GET /js/osgearth/FunctionLocation.js 304 3ms 
GET /js/osgearth/osgearth.js 304 4ms 
GET /js/osgearth/ShaderFactory.js 304 2ms 
GET /js/osgearth/VirtualProgram.js 304 1ms 
GET /js/osgearth/Extent.js 304 2ms 
GET /js/osgearth/EllipsoidModel.js 304 1ms 
GET /js/osgearth/Profile.js 304 2ms 
GET /js/osgearth/GeodeticProfile.js 304 2ms 
GET /js/osgearth/MercatorProfile.js 304 3ms 
GET /js/osgearth/TileKey.js 304 3ms 
GET /js/osgearth/ImageLayer.js 304 2ms 
GET /js/osgearth/HeightField.js 304 2ms 
GET /js/osgearth/ElevationLayer.js 304 3ms 

就是這樣。它打印USING * HANDLER GETS我實際上手動讓自己。所以,當我去到服務器URL /,當我然後點擊鏈接的leaflet.html之後,所有獲得該服務器返回成功製成,但它永遠不會打印。它也從不打印代理路由。是什麼賦予了?我該如何解決這個問題?

+0

是否使用'連接/ static'作爲中間件? –

+0

@JoachimIsaksson目前我使用的唯一模塊是''express'',''http'',''path''和''http-proxy''。我真的不知道很多代理。基本上,這個網絡應用程序的後端不是由我製作的。它通常使用一個proxy.php文件,它只是使用curl來獲取內容並回應它們,以避免跨域安全問題。我想避免使用PHP並嘗試使用與節點兼容的代理。我發現了這一點,但我也無法得到這個工作。 http://stackoverflow.com/questions/17085460/how-to-build-a-php-node-proxy-to-render-external-http-images-on-https-website – krb686

+1

好吧,304的看起來像類似於'app.use(express.static(__ dirname +'/'));'會被配置。 –

回答

0

只是一個快速回顧一下這是如何解決的;

事實證明,express.static配置爲優先服務,在文件系統中存在的被稱爲任何路線之前的文件。

從文件系統中刪除未送達的靜態文件(proxy.php在這種情況下),允許作爲意圖,而不是靜態的服務proxy.php的內容的路由處理程序被調用。