我已经从快递文档中了解了几行,以了解它是如何工作的:
// ./routes/test.js
var router = require('express').Router();
router.param(['id', 'page'], function (req, res, next, value) {
console.log('CALLED ONLY ONCE with', value);
next();
});
router.get('/user/:id/:page', function (req, res, next) {
console.log('although this matches');
next();
});
router.get('/user/:id/:page', function (req, res) {
console.log('and this matches too');
res.end();
});
module.exports = router;
以通常的方式安装它们:app.use('/test', require('./routes/test'));
问题是.param
中传递的回调没有被执行。当我将第一行更改为var router = require('express')();
时,它可以正常工作。一个应用程序只是一个路由器与一些额外的东西。
我使用快递4.12.4
。有什么想法吗?
答案 0 :(得分:0)
嗯,这不是一个错误。这是一个错误,但在文档中。路由器不接受数组作为第一个arg,一个应用程序。