制作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
logbarn/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');
});