我有这个
router.put('/user:resourceId', function(req, res) {
User.findOneAndUpdate({resourceId: req.params.resourceId}, req.body, function(err, user) {
if (err)
res.send(err);
res.send(user);
});
});
在我的角度代码中我有
updateResource: function(resource){
var self = this;
return $http.put('api/resources/resource', resource, {params:{resourceId:resource.resourceId}}).then(function(response){
return response.data;
}, function(err){
$log.error('Error updating', err);
});
}
为什么这条道路没有被捕获?当我移除params时它会起作用。
答案 0 :(得分:1)
您的路线看起来有点偏,请尝试以下方法:
router.put('/user/:resourceId', function(req, res) {
...
});
对于看似如下的网址:/user/123
,其中req.param.resourceId
为123。
看起来您的角度代码指向/api/resources/resource
,所以我可以理解为什么它可能与/user/:resourceId
的Express路线不匹配 - (除非您的Express路由器设置为处理某事的请求如下所示:/api/resources/resource/user/:resourceid
?