私はWebアプリケーションにCRUDを実装する際に問題があります。データはmongoDBにクラウド上のFORMを使用して正常に保存され、ユーザーのデータも表示できます。しかし、私の問題は、それらを削除するために、挿入されたデータを更新することです。 私のコードを見てください。私がリンクを更新/削除すると、私はGET /削除できません。またはGET /更新できません。 誰かが私を助けることができれば感謝します。Express Router CRUDデータの更新と削除
server.js
app.get("/guestbook", function(req,res){
// res.render("pages/guestbook",{
db.collection('newmessage').find().toArray(function (err, result) {
if (err) return console.log(err)
res.render('pages/guestbook', {newmessage: result});
});
});
//Form to insert Guest book messages
app.get("/newmessage", function(req,res){
res.sendFile(__dirname + "/pages/newmessage");
res.render("pages/newmessage",{
add_newMessage:"Add Your info & message!"
});
});
//Accepts users inputs and saves to mongoDB
app.post("/newmessage" , function(req,res){
var guestMessage = {
username:req.body.username,
country:req.body.country,
message:req.body.message,
date:req.body.date
};
//assert.equal(null, err);
db.collection('newmessage').insertOne(guestMessage, function(err, result) {
if (err) return console.log(err);
console.log('Message saved to database');
res.redirect('/guestbook');
});
});
app.post("/update/:id", function (req,res){
var guestMessage = {
username:req.body.username,
country:req.body.country,
message:req.body.message,
date:req.body.date
};
var Gid = req.params.id;
db.collection('newmessage').findById(Gid, {$set: guestMessage}, function(err, result) {
if (err) return console.log(err);
result.save(function (err,result) {
console.log('Message Updated');
res.redirect('/guestbook');
})
});
});
app.get("/delete/: id" , function (req, res) {
var Gid = req.params.id.toString();
db.collection('newmessage').findById(Gid, function(err, result) {
result.remove(function (err, result) {
res.redirect('/guestbook');
});
});
});
newmessage.ejs
<!DOCTYPE html>
<html lang="en">
<head>
<% include ../partials/head %>
</head>
<body class="container">
<header>
<% include ../partials/header %>
</header>
<main>
<div class="jumbotron">
<form class="messageForm" method="post" action="/newmessage">
<fieldset>
<legend><%= add_newMessage %></legend>
<div class="form-group">
<label for="username">Username:</label>
<input type="text" class="form-control" id="username" name ="username" placeholder="Enter Username">
</div>
<div class="form-group">
<label for="country">Country:</label>
<input type="text" class="form-control" id="country"name="country" placeholder="Enter country">
</div>
<div class="form-group">
<label for="message">Message:</label>
<input type="text" class="form-control" id="message" name= "message" placeholder="Enter message">
</div>
<div class="form-group">
<label for="date">Date:</label>
<input type="date" class="form-control" id="date"name="date" placeholder="Enter date">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</fieldset>
</form>
</div>
</main>
<footer>
<% include ../partials/footer %>
</footer>
</body>
</html>
更新のために3210guestbook.ejs
<!DOCTYPE html>
<html lang="en">
<head>
<% include ../partials/head %>
</head>
<body class="container">
<header>
<% include ../partials/header %>
</header>
<main>
<div class="jumbotron">
<table border = "1">
<tr>
<th>Name</th>
<th>Country</th>
<th>Message</th>
<th>Date</th>
<th>Edit</th>
<th>Delete</th>
</tr>
<% for(var i=0; i<newmessage.length; i++) {%>
<tr>
<td class="userInput"><%= newmessage[i].username %></td>
<td class="userInput"><%= newmessage[i].country %></td>
<td class="userInput"><%= newmessage[i].message %></td>
<td class="userInput"><%= newmessage[i].date %></td>
<td class="userInput"><a href="/update/<%= newmessage._id %>">Update</a></td>
<td class="userInput"><a href="/delete/<%= newmessage._id %>">Delete</a></td>
</tr>
<%} %>
</table>
</div>
</main>
<footer>
<% include ../partials/footer %>
</footer>
</body>
</html>