我正在制作一个在节点快速网络服务器上运行的Web应用程序。我有目前这样设置的路由:
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
该服务器生成的所有GETS都会成功返回,但从不打印。它也从不打印代理路由。是什么赋予了?以及我该如何解决?
简要回顾一下如何解决这个问题;
事实证明,已将express.static
其配置为具有优先权,以在调用任何路由之前为文件系统中存在的文件提供服务。
从文件系统中删除不需要提供服务的静态文件(在这种情况下为proxy.php),可以按预期调用路由处理程序,而不是由静态服务于proxy.php的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句