简体   繁体   中英

node js and mongodb update form data

I want to update Form date using node.js and MongoDB database. I have create server file with main.js and handle request method as follows

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

Edit View

 <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>

After form submission it shows "Post Updated successfully" but there is no changes in data.

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

where ObjectId, you have already required some where in the code as

 var objectID = require('mongodb').ObjectID;
const User = require("./models/user.model.js");
const util = require("./utils/util");
const mongoose = require("mongoose");

module.exports = {
  test: function (data) {
    return new Promise((resolve, reject) => {
      console.log(data.email);
      User.findOne(
        { email: data.email },

        function (err, user) {
          debugger;

          if (err) {
            return reject(err);
          }

          if (user) {

            User.updateOne({ email: data.email }, {
              $set: {
                fname: data.fname,
                lname: data.lname
              }
            }, function (err, result) {
              if (err) {
                console.log(err);
              } else {
                console.log(result);
                console.log("Updated successfully");

                return resolve({
                  status: 200,
                  message: "User Updated Successfully.",
                  user,
                });
              }
            });

          } else {
            return reject({
              status: 404,
              message: "User Not Found.",
              user,
            });
          }

        } // Find One Callback Function.
      ); // Find One Function.
    }); // Promise.
  }    // testFunction.
};    // Exports.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM