Express router.param ([name] callback) Why can't name pass multiple param in an array?

const express = require("express")
const router = express.Router()
const Student = require("../students")


router.param(["id","page"], function (req, res, next, value) {
    console.log("11", value);
    next();
  })

router.get("/user/:id/:page", function (req, res, next) {
    console.log("22");
    next();
});
  
router.get("/user/:id/:page", function (req, res) {
    console.log("33");
    res.end();
});

//  
http://localhost:3000/user/42/2323


//
[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
app is running at port 3000
22
33

//param

const express = require("express")
const router = express.Router()
const Student = require("../students")


router.param(["id"], function (req, res, next, value) {
    console.log("11", value);
    next();
  })

router.get("/user/:id", function (req, res, next) {
    console.log("22");
    next();
});
  
router.get("/user/:id", function (req, res) {
    console.log("33");
    res.end();
});

//  
http://localhost:3000/user/42


//
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
app is running at port 3000
11 42
22
33

do not know why according to the official document, the first parameter passed an array and multiple param can not get in, ask the bosses to help

Jun.15,2021

finally found that the reason is that router.param does not accept multi-parameters, but no one in express Chinese documents maintains that API is not updated, resulting in an error.

Menu