Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
制作RESTAPI:如何使用express for node路由文件路径_Api_Node.js_Rest_Routing_Express - Fatal编程技术网

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

制作RESTAPI:如何使用express for node路由文件路径,api,node.js,rest,routing,express,Api,Node.js,Rest,Routing,Express,呼叫http://localhost:3000/files/farm/get/chicken将记录鸡肉。 呼叫http://localhost:3000/files/farm/get/barn/yard/chicken将记录barn 如何制作一个快速的app.VERB(path,callback)pathlogbarn/yard/chicken?试试这个: var express = require('express'); var app = express(); app.get('/file

呼叫
http://localhost:3000/files/farm/get/chicken
将记录
鸡肉
。 呼叫
http://localhost:3000/files/farm/get/barn/yard/chicken
将记录
barn

如何制作一个快速的
app.VERB(path,callback)
path
log
barn/yard/chicken

试试这个:

var express = require('express');

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

app.listen(3000);

将路线更改为如下所示:

console.log(req.params.service + "/" + req.params.op + "/" + req.params.file);
请注意,最后一个参数是如何更改为*的,以便它采用单个值(如chicken)或多个值(如barn/yard/chicken)。这里的问题是,斜杠字符用于拆分URL组件,但有时您希望拆分值,但不希望拆分其他值。*将自动将最后一组值(1个或多个)合并到单个元素中


请参见

完美。我不太清楚为什么路径是第零个参数,但它是有效的。(我假设顺序是
[service,op,path]
-也不确定),但这可能是因为命名参数:service和:op已映射到req.params对象内的属性。例如,您可以通过req.params.service和req.params.op访问它们
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');

});