[FIXED] Knoten JS und MongoDB -Aktualisierungsformulardaten

Ausgabe

Ich möchte das Formulardatum mithilfe von node js und der MongoDB-Datenbank aktualisieren. Ich habe eine Serverdatei mit main.js erstellt und die Anforderungsmethode wie folgt behandelt

app.get('/edit/:id', (req, res) => {    
    var id = req.params.id;
    var o_id = new ObjectId(id);
   db.collection('blogs').find({_id:o_id}).toArray((err, result) => {
       if (err) return console.log(err)
       console.log(result);
       res.render('edit.ejs',{blogs: result});  
    });
    console.log(req.params.id);
 });
 app.post('/edit',(req, res) => {
     db.collection('blogs').update ({ _id: req.body._id }, {$set: {
        title: req.body.title,
        description: req.body.description
     }
   }, function (err, result) {
        if (err) {
          console.log(err);
        } else {
         console.log("Post Updated successfully");
         res.render('blog.ejs');
   }
 });

Ansicht bearbeiten

 <form action="/edit" method="POST">
            <div class="form-group">
                <label for="title">Title:</label>
                <input type="text" id="title" class="form-control" name="title" value="<%= blogs[0].title %>">
            </div>
            <div class="form-group">
                <label for="description">Description:</label>
                <textarea name="description" id="description" class="form-control"><%= blogs[0].description %></textarea>
            </div>
            <input type="hidden" name="_id" value="<%= blogs[0]._id %>">
            <button type="submit" class="btn btn-info">Submit</button>
        </form>

Nach dem Absenden des Formulars wird “Post Updated successfully” angezeigt, aber es gibt keine Änderungen an den Daten.

Lösung

app.get('/edit/:id', (req, res) => {    
var id = req.params.id;
var o_id = new ObjectId(id);
db.collection('blogs').find({_id:o_id}).toArray((err, result) => {
   if (err) return console.log(err)
   console.log(result);
   res.render('edit.ejs',{blogs: result});  
});
console.log(req.params.id);
});

app.post('/edit',(req, res) => {
 db.collection('blogs').update ({ _id: ObjectId(req.body._id) }, {$set: {
    title: req.body.title,
    description: req.body.description
 }
 }, function (err, result) {
      if (err) {
      console.log(err);
    } else {
     console.log("Post Updated successfully");
     res.render('blog.ejs');
 }
});

wo ObjectId, haben Sie bereits einige wo im Code als erforderlich

 var objectID = require('mongodb').ObjectID;


Beantwortet von –
Sourbh Gupta


Antwort geprüft von –
Gilberto Lyons (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *