用params捕获所有路由

时间:2013-09-25 10:56:56

标签: express

我想创建一个简单的应用程序,其中一个要求是捕获URL后的所有内容。但是这些参数包含斜线/点,什么不包含。像:

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

我基本上想把localhost:3000/之后的所有内容放入参数中,然后单独处理。我该怎么办?我使用过app.get('/:string'),但如果网址中有斜杠,则无效。

由于

1 个答案:

答案 0 :(得分: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