Param在Express中为嵌套路由parsing两次
当我为下面的代码做GET http://localhost:8080/messages/3/sentiments
为什么param方法被调用两次? 所以如果我有10条路线,那么会被称为10倍?
var comments = new Router(); comments.get('/comments', function (req, res, next) { res.send('Comments by message_id=' + req.message._id); }) var sentiments = new Router(); sentiments.get('/sentiments', function (req, res, next) { res.send('Comments by message_id=' + req.message._id); }) var messages = new Router(); messages.param('_message', function (req, res, next, _id) { console.log("Set message"); fs.readFile(__filename, function () { req.message = { _id: _id }; next(); }); }) messages.use('/messages/:_message/', comments); messages.use('/messages/:_message/', sentiments); app.use(messages); app.listen(8080);
确认是Express <4.3中的一个错误