Node.js req.params.locationid不抓取ID

我有以下url,其中有一个特殊的ID:

http://localhost:3000/location/5733e37adcba0f6d5aa88cf5/review/new 

这是一个表格,将被填写并提交给api并保存在我的数据库中的页面。 我遇到的奇怪的问题是,在我的控制器中,

 req.params.locationid 

由于某种原因返回undefined

这是我的控制器代码:

 module.exports.doAddReview = function(req, res) { var requestOptions, path, locationid, postdata; locationid = req.params.locationid; console.log("\n>>>> " + req.params.locationid + " <<<<\n"); path = "/api/locations/" + locationid + '/reviews'; postdata = { author: req.body.name, rating: parseInt(req.body.rating, 10), reviewText: req.body.review }; requestOptions = { url : apiOptions.server + path, method : "POST", json : postdata }; request(requestOptions, function(err, response, body) { if (response.statusCode === 201) { res.redirect('/location/' + locationid); } else { _showError(req, res, response.statusCode); } }); }; 

任何想法为什么req.params.locationid在我的其他控制器工作正常,但在这一个不是因为某种原因? 我的路由器可能是错的吗?

顺便说一句,表格如下:

 action="", method="post", role="form" 

和路由器:

 /* Locations pages */ router.get('/', ctrlLocations.homelist); router.get('/location/:locationid', ctrlLocations.locationInfo); router.get('/location/:locationid/review/new', ctrlLocations.addReview); router.post('/location/:locaitonid/review/new', ctrlLocations.doAddReview); 

因为您在路由器文件中input错误。

 router.post('/location/:locationid/review/new', ctrlLocations.doAddReview);