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.