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);