2016-09-19 6 views
0

Mein Knoten js Code,Wie db mit Knoten js

exports.updateprofiledetails = function (req, res) { 
     console.log(req.body) 
     var params = req.body; 
     var item = 
     { 
     firstname:params.firstname, 
     lastname:params.lastname, 
     phone:params.phone, 
     street:params.street 
     };console.log(item) 
     var id = req.params.id; 
     var record= db.collection('profile'); 
     record.updateOne({'_id':id},{$set:item},(err, result) => { 
     if (err){ return console.log(err) 
     } 
      if(result){ 
       response = {status:'success',data:result}; 
      } else{ 
       response = {status:'fail',data:[]}; 
      } 
      res.send(response); 
     }); 

    }; 

Aus dem oben gebe ich nur 2 (Vorname, Nachname) Felder aber dann die restlichen Felder (phone.street) Datensätze in Mongo aktualisieren zugewiesen mit Nullwerten. Jemand kann mir helfen, das Problem zu lösen.

+1

Was genau Sie wollen den Wert von Telefon usw., wenn es nicht gegeben ist? – abdulbarik

+0

Hallo abdulbarik, ich habe ein Formular mit 4 Feldern zu aktualisieren, aber ich aktualisiere nur 2 Felder, so dass die restlichen 2 Felder als null aktualisiert werden ............ – klp

+0

Es wird als null gespeichert, wenn Sie Gib keinen Wert oder setze den Standardwert im Schema, wenn der Wert null ist – abdulbarik

Antwort

1

Sie mögen überprüfen und stellen Sie dann Wert, der nur Wert festgelegt ist, die sich von Frontend wie

gesendet
exports.updateprofiledetails = function (req, res) { 
    console.log(req.body) 
    var params = req.body; 
    var item = { } 
    if(params.firstname) 
    item.firstname = params.firstname; 
    if(params.lastname) 
    item.lastname = params.lastname; 
    if(params.phone) 
    item.phone = params.phone; 
    if(params.street) 
    item.street = params.street; 
    console.log(item); 
    var id = req.params.id; 
    var record= db.collection('profile'); 
    record.updateOne({'_id':id},{$set:item},(err, result) => { 
    if (err) { 
    return console.log(err) 
    } 
    if(result){ 
     response = {status:'success',data:result}; 
    } else{ 
     response = {status:'fail',data:[]}; 
    } 
    res.send(response); 
    }); 
}; 
0

Alles ist in Ordnung in Ihre code.But Sie Straße Wert existieren in Variable Artikel .Because Ihre geben nur Vorname & Nachname von params .Wenn das Feld Telefon, um sicherzustellen, müssen Geben Sie nicht an & Straße (über Parameter) Bitte entfernen Sie das Feld von Artikel Variable.

Versuchen Sie den Code unten und lassen Sie mich wissen, was seine Rückkehr

exports.updateprofiledetails = function (req, res) { 
     console.log(req.body) 
     var params = req.body; 
     var item = 
     { 
     firstname:params.firstname, 
     lastname:params.lastname  
     }; 
     console.log(item) // Ensure this variable have data 
     var id = req.params.id; 
     var record= db.collection('profile'); 
     record.updateOne({'_id':id},{$set:item},(err, result) => { 
     if (err){ return console.log(err) 
     } 
      if(result){ 
       response = {status:'success',data:result}; 
      } else{ 
       response = {status:'fail',data:[]}; 
      } 
      res.send(response); 
     }); 

    };