制作REST API:如何使用express for node路由文件路径

Dan*_*ell 3 api rest routing node.js express

var express = require('express');

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

app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

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

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

Hec*_*rea 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');

});
Run Code Online (Sandbox Code Playgroud)

注意最后一个参数是如何更改为*以便它采用单个值(如鸡)或多值(如barn/yard/chicken).这里的问题是斜杠字符用于拆分URL组件,但您希望有时拆分值而不拆分其他值.*会自动将最后一组值(1或多个)合并为一个元素.

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