Express Router.param不起作用,但app.param确实如此

时间:2015-08-25 19:52:59

标签: node.js express

我已经从快递文档中了解了几行,以了解它是如何工作的:

// ./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。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

嗯,这不是一个错误。这是一个错误,但在文档中。路由器不接受数组作为第一个arg,一个应用程序。