node.js - express.js 有可变长度参数吗?

标签 node.js express

例如我想要一条这样的路线:

/mock/:level1/:level2/(:params)*

匹配

/mock/a/b
/mock/a/b/p1
/mock/a/b/p1/p2
/mock/a/b/p1/p2/p3

第 4 行中 params 的值为 p1/p2/p3,那么我可以执行 params.split("/").

编辑:

Flask.py 可以做到这一点,这正是我想要的。它存在于express.js中吗?

@app.route('/wcfmock/<level1>/<level2>/<level3>/<path:params>')
def catch_all(level1, level2, level3, params):
    return 'You want params: %s' % params

最佳答案

Express 可以处理这个问题。来自 http://expressjs.com/guide.html#routing :

 "/files/*"
 /files/jquery.js
 /files/javascripts/jquery.js

因此,在您的示例中,(在 CoffeeScript 中)

util = require "util"

app.get '/a/b/c/*', (req, res) ->
  res.json util.inspect(req.params)

假设应用程序结构前往端口 8080...

http://localhost:8080/a/b/c/d/e/f

将返回

"[ 'd/e/f' ]"

关于node.js - express.js 有可变长度参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642092/

相关文章:

javascript - 类型错误 : Cannot read property &#39;authorization&#39; of undefined using express-jwt

node.js - 有没有办法在 Nest.js 中不使用 async/await 来从数据库获取数据?

javascript - Node.js 加密和解密是文件大小加倍

node.js - 使用 HTML5 视频标签从 Node.js 服务器上的 MinIO 存储桶流式传输视频

node.js - Mongoose .js : isModified flag for attribute with default value

javascript - TypeError : You may only yield a function, promise ,生成器...当产生 app.listen() 时

node.js - 同步 sequelize.sync() 还是不同的方式?

mysql - 在node中查询mysql后res.render无法获取结果参数

node.js - 是否可以将 JSON 对象传递给 ejs renderFile?

node.js - 在 node.js 中,我将如何遵循最小特权原则?