带斜杠的 Express.js 路由参数 [英] Express.js route parameter with slashes

查看:51
本文介绍了带斜杠的 Express.js 路由参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个提供文件列表的应用程序.

I have an application which serves file listings.

应用程序必须响应以下路由:

The application must respond to following routes:

/company/:id
/company/:id/dir
/company/:id/dir/dir

这里的 /company/:id 是一个没有指定 path 的路由,例如一个 root 目录.我在想像 app.get('/company/:id/:path', ... 这样的东西,这显然不起作用.

Here /company/:id is a route with no path specified e.g a root directory. I was thinking for something like app.get('/company/:id/:path', ... which obviously doesn't work.

如何定义响应所有示例的路由?

How can I define a route which responds to all of the examples?

推荐答案

使用 /company/:id*(注意尾随星号).

Use /company/:id* (note trailing asterisk).

完整示例

var express = require('express')();

express.use(express.router);

express.get('/company/:id*', function(req, res, next) {
    res.json({
        id: req.params['id'],
        path: req.params[0]
    });    
});

express.listen(8080);

这篇关于带斜杠的 Express.js 路由参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆