javascript - 在 Express JS 中按顺序获取 req.params

标签 javascript node.js express

在 Express 中,有没有办法按照它们在路由中定义的顺序从匹配的路由中获取参数?

我希望能够将路由中的所有参数应用到另一个函数。问题是这些参数是事先不知道的,所以我不能通过名称显式引用每个参数。

app.get(':first/:second/:third', function (req) {
    output.apply(this, req.mysteryOrderedArrayOfParams); // Does this exist?
});

function output() {
    for(var i = 0; i < arguments.length; i++) {
        console.log(arguments[i]);
    }
}

调用 GET: "/foo/bar/baz"

期望的输出(按此顺序):

foo
bar
baz

最佳答案

req.route.keys 是一个有序的参数数组,其内容在 {name:'first'} 之后。

所以,代码:

app.get(':first/:second/:third', function (req) {
    var orderedParams = [];
    for (var i = 0; i < req.route.keys; i++) {
        orderedParams.push(req.params[req.route.keys[i].name]);
    }
    output.apply(this, orderedParams);
});

function output() {
    for(var i = 0; i < arguments.length; i++) {
        console.log(arguments[i]);
    }
}

关于javascript - 在 Express JS 中按顺序获取 req.params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17284841/

相关文章:

javascript - 我正在尝试通过 Express 为我的 React 应用程序提供服务,为什么会收到 404 错误?

javascript - 当我运行 Mocha 测试时,我总是收到错误 : connect ECONNREFUSED

node.js - ExpressJS 请求对象

javascript - 将 null 值替换为数组中的字符串,该字符串是 JSON 输出 - V2.0

javascript - p2p文件下载中node.js写入文件流无序

javascript - Bootstrap 3.0 弹出窗口和工具提示

node.js - 错误 : Cannot find module 'connect-form' - despite it existing

node.js - 使用 rxjs 通过 nodejs request.get 发出批量请求

javascript - 如何递归处理 JSON 数据并从函数返回处理后的 JSON?

javascript - 从对象数组和另一个简单数组创建简单数组