在 express 中合并 req.params 和 req.url

Merging req.params and req.url in express

本文关键字:req params url 合并 express      更新时间:2023-09-26

首先,我有以下路线:

route: '/list/:param1'

我正在向服务器发送以下请求:

url: '/list/someParam?param2=foo&param3=bar

在那之后,快递给了我需要的两个重要对象,req.urlreq.params

我想得到一个合并网址和参数的对象。我使用以下代码:

module.exports = function (req, res, next) {
    var url = require('url');
    var queryObject = url.parse(req.url, true).query;
    console.log(queryObject);
    console.log(req.params);
    console.log(req.params.length);
}

所以它记录如下内容:

{ param2: 'foo', param3: 'bar' }
[ param1: 'someParam' ]
0

现在,假设我不知道参数的名称,我需要有一个包含来自 req.urlreq.params 的信息的对象。以下是我的问题:

1(我怎样才能得到这样的东西:

{ param1: 'someParam', param2: 'foo', param3: 'bar' }

2( 为什么req.params日志记录类似于数组?如果它是一个数组,为什么它会返回我0作为它的长度?

提前谢谢。

  1. 使用req.query,而不是再次解析 URL。
  2. 我猜 Express 对该特定对象有一个自定义toString实现。

您还可以使用req.param(name)按重要性顺序查找两者