2013-09-25 83 views
1

我想製作一個簡單的應用程序,其中一個要求是捕獲URL後面的所有內容。但是這些參數將包含斜槓/點,而不是。像:用參數捕獲所有路由

localhost:3030/file1.html+css/test.css

我基本上希望把一切localhost:3000/到PARAMS後再處理,其單獨。我該怎麼做?我已經使用app.get('/:string'),但如果網址中有斜線,則不起作用。

感謝

回答

3

使用req.url

var express = require('express'); 
var app = module.exports = express(); 
var http = require('http'); 
http.createServer(app).listen(3000); 

app.use(express.logger('dev')); 
app.use(app.router); 
app.all('*', function(req, res, next){ 
    console.log('req.url'); 
    console.log(req.url); 
    // from here you might want to use url.parse: 
    // http://nodejs.org/docs/latest/api/url.html#url_url_parse_urlstr_parsequerystring_slashesdenotehost 
    res.send(200) 
}); 

//Output: 
$ curl http://localhost:3000/foo?bar=baz#hash 
    req.url 
    /foo?bar=baz 
+1

請注意,如果您或其他一些中間件修改'req.url'表達店原爲'req.originalUrl' [(文檔)](HTTP ://expressjs.com/api.html#req.originalUrl) – Plato

+0

非常感謝!工作輝煌 – andy