2013-09-25 3 views
1

Я хочу сделать простое приложение, и одним из требований является захват всего после URL. Но эти параметры будут содержать слэш/точки, а что нет. Как:Поймать всю маршрутизацию с параметрами

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

Я в принципе хочу поставить все после localhost:3000/ в Params и затем иметь дело с этим индивидуально. Как мне это сделать? Я использовал app.get('/:string'), но это не работает, если в URL есть косая черта.

Благодаря

ответ

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

Смежные вопросы