2016-03-22 5 views
1

Ich habe diesesKnoten Express Routing params fangen nicht

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

und in meinem Winkel Code Ich habe

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

Warum nicht diesen Weg zu kontrollieren? Es funktioniert, wenn ich die Parameter entferne.

Antwort

1

Ihr Weg sieht ein wenig aus, versuchen Sie Folgendes:

router.put('/user/:resourceId', function(req, res) { 
    ... 
}); 

Für eine URL, die wie folgt aussieht: /user/123, wo req.param.resourceId ist 123.

Es ist wie Ihr Winkel Code sieht zeigt auf /api/resources/resource obwohl, also kann ich verstehen, warum es vielleicht nicht Ihre Express-Route für /user/:resourceId entspricht - (Es sei denn, Ihr Express-Router ist so konfiguriert, Anfrage für etwas wie folgt zu behandeln: /api/resources/resource/user/:resourceid?

+0

Am Ende habe ich nur die Abfrage entfernt und eine Nachricht gesendet, die funktioniert hat. Ich hatte keine Zeit herauszufinden, warum. Ich werde diese nächste Woche noch einmal besuchen. – Garuuk