如何解决即使我使用的是 "a _method=PUT" ,也出现了无法 POST 错误,我使用的是 Node.js Express MongoDB 和 Clouidnary
这是表单操作:
<form action="/index/<%= picture._id %>/?_method=PUT" method="POST" enctype="multipart/form-data">
这是我的编辑路线
app.put("/index/:id",upload.single('image'),function(req,res)
我得到的错误': 无法 POST /index/606ee3d76e310406f4111d90/
我的网络应用概览: 我正在使用 Node.js、Express、MongoDB 和 Cloudinary。 我的网络应用程序就像一个照片库,摄影师可以在其中上传他们的照片。 我在 multer 的帮助下使用 cloudinary 存储照片,然后将 Cloudinary 中图像的 URL 与其他一些数据一起存储在 MongoDB 中。
错误: 当我尝试编辑现有照片的详细信息或替换照片本身并在表单中提交时,我收到 “无法 POST /index/606ee3d76e310406f4111d90/” 错误。 这是我的编辑路线:
app.put("/index/:id",res){
photoObject.findById(req.params.id,async function(err,foundPhoto){ //Find the photo object in MongoDB
if(err){
req.flash("error",err.message);
res.redirect("back");
} else {
if (req.file) { // check to see if user uploads an image to replace the existing image
try {
await cloudinary.uploader.destroy(foundPhoto.imageId); // delete the existing image from cloudinary
var result = await cloudinary.uploader.upload(req.file.path); // upload the new image which the user uploaded to cloudinary
foundPhoto.imageId = result.public_id; //in MongoDB,set the imageId to the public_id which is given by cloudinary
foundPhoto.image = result.secure_url; //in MongoDB,set the URL with secure_url which is given by cloudinary
} catch(err) {
req.flash("error",err.message);
return res.redirect("back");
}
}
// Handling of data changes if any
foundPhoto.name = req.body.name || foundPhoto.name;
foundPhoto.description = req.body.description || foundPhoto.description;
foundPhoto.price = req.body.price || foundPhoto.price;
foundPhoto.save(); // save the photo in MongoDB
req.flash("success","Successfully Updated!");
console.log("Successfully updated !");
res.redirect("/index/" + foundPhoto._id); // Redirect to the show page
}
});
});
这是我的 Edit.ejs
<%- include("partials/header") %>
<div class="container">
<div class="row">
<h1 style="text-align:center;">Edit <%= picture.name %></h1>
<div style="width: 30%; margin: 50px auto">
<form action="/index/<%= picture._id %>/?_method=PUT" method="POST" enctype="multipart/form-data">
<div class="form-group">
<input class="form-control" type="text" name="name" value="<%= picture.name %>">
</div>
<div class="form-group">
<label for="image">Image</label>
<input type="file" id="image" name="image" accept="image/*" >
</div>
<div class="form-group">
<input class="form-control" type="number" name="price" value="<%= picture.price %>" min="0.01" step="0.01">
</div>
<div class="form-group">
<input class="form-control" type="text" name="description" value="<%= picture.description %>">
</div>
<div class="form-group">
<button class="btn btn-lg btn-default btn-block btn-primary">Submit!</button>
</div>
</form>
<a href="/index">Go Back!</a>
</div>
</div>
</div>
<%- include("partials/footer") %>
附加信息:
当我使用邮递员发送 https://webdev1-hithere.run-ap-south1.goorm.io/index/606ee3d76e310406f4111d90/ 的 PUT 请求时,我的 app.put Route(上面给出的)似乎陷入了无限循环,因为文本“Successfully Updated!”(倒数第二行我的 app.put Route) 重复打印在我的控制台中,但我发送了一个带有此 https://webdev1-hithere.run-ap-south1.goorm.io/index/606ee3d76e310406f4111d90/?_method=PUT 的 POST 请求,我收到了无法 POST 错误
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。