express router.param([name] callback)为什么name传数组多个param不行?
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
不知道为什么 按官方文档来的, 第一个参数传数组且多个param 就进不去,求大佬们帮助下
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最后发现原因是 router.param 不接受多参数的, 但是express中文文档没人维护 API没更新,引发的错误。