2016-04-11 17 views
0

Ich versuche ein bestehendes Dokument in mongodb mit node.js zu aktualisieren. Aber es scheint nicht zu funktionieren. Es zeigt den Anforderungsaufruf nicht einmal in der Konsole an. Bitte schlagen Sie vor, welchen Fehler ich mache oder wie ich den Update-Vorgang in node.js mit mongodb durchführen kann. Hier ist der Code:PUT Anfrage funktioniert nicht in Node.js

Node.js Code:

app.put('/addIssueId', function(req, res) { 
    console.log("Adding issue id") 
    console.log(req.body.issueKey) 
    impactMapFeature.update({productName:req.params.productName, actor:req.body.actor, activity:req.body.activity,feature:req.body.feature},{issueKey:req.body.issueKey}, function (err, data) { 
     console.log("Updating" + data) 
    }); 
}); 

Winkelregler Code:

var data = { 
    productName: $scope.productName, 
    actor: actor, 
    activity: impact, 
    feature : $('#feature').val(), 
    issueKey : data.key 
}; 
    $http.put('/addIssueId', data) 
      .success(function(data){ 

     }).error(function(data){ 
          console.log('Error in adding issueId' + data) 
     }); 
     } 
+1

zu ändern, wenn nicht '{ productName: req.params.productName, ...} 'be' {Produktname: req.body.productName, ...} '? – chridam

+0

Es scheint zu funktionieren, aber warum ich nicht ähnlich wie PUT/addIssueId 200 17ms in der Konsole wie ich es für POST/GET/DELETE bekomme –

+0

Es ist, weil 'req.params' für die route-Parameter ist, nicht für deine Daten, daher fehlt dir der 'productName' route Parameter' app.put ('/addIssueId /: productName ',. .' und auf dem Client als '$ http.put ('/ addIssueId /' + $ scope.productName, ...' – chridam

Antwort

1

Wie chridam sagte: Sie verwenden req.params, die eine Route Parameter ist. Entweder verwenden Sie die folgende Route: /addIssueId/:productName oder geben Ihre Variable mit einem Abfrageparameter: /addIssueId?productName=productName und {productName = req.query.productName, ... } oder Ihre Variable übergeben, wie Sie es in den Körper tun (dann nur Sie brauchen req.params.productName-req.body.productName