3
var express = require('express');

var app = express();
app.get('/files/:service/:op/:file', function(req, res){
  console.log(req.params.file)
})

app.listen(3000);

通话http://localhost:3000/files/farm/get/chicken将记录chicken。通话http://localhost:3000/files/farm/get/barn/yard/chicken将记录barn

如何制作 Expressapp.VERB(path, callback) path日志barn/yard/chicken

4

2 回答 2

5

将您的路线更改为以下内容:

app.get('/files/:service/:op/*', function(req, res){
  console.dir(req.params);
  console.log(req.params[0]); // this is what you want
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.end('OK');

});

请注意最后一个参数如何更改为 *,以便它接受单个值(如鸡)或多值(如谷仓/院子/鸡)。这里的问题是斜杠字符用于拆分 URL 组件,但您有时希望拆分值而不是其他值。* 会自动将最后一组值(1 或多个)集中到单个元素中。

http://expressjs.com/api.html#req.params

于 2012-08-22T13:09:29.180 回答
0

试试这个:

console.log(req.params.service + "/" + req.params.op + "/" + req.params.file);
于 2012-08-22T12:08:59.580 回答