Я строю блог-сайт с помощью Express. Он имеет функции редактирования и удаления. Я пытаюсь перенаправить на ту же страницу пагинации, которую я остановил в корневом маршруте после удаления или редактирования существующего сообщения. В нынешнем виде, например, если я удалю сообщение на странице 2, оно перенаправит меня обратно на страницу 1. То же самое произойдет, если я удалю сообщение в блоге на странице 2. Но я хочу, чтобы обе функции перенаправили обратно на страницу. 2. Любая помощь приветствуется.
Это страница редактирования внешнего интерфейса.
<form action="/edit/<%=id %>?_method=PUT?page=<%= currentPage %>" method="POST">
<div class="form-group">
<label for="postTitle">Title</label>
<input type="text" name="postTitle" class="form-control" id="postTitle" autocomplete="off" value="<%= title %>">
<label for="postBody">Post</label>
<textarea name="postBody" class="form-control" autocomplete="off" rows="8"><%= content %></textarea>
</div>
<button type="submit" name="button" class="btn btn-primary">Publish</button>
</form>
Вот форма для функции удаления на внешнем интерфейсе.
<form action="/delete?page=<%= currentPage %>" method="POST">
<button type="submit" name="delete" value="<%= post._id %>" class="btn btn-outline-danger">DELETE</button>
</form>
Здесь находится рут, удаление и редактирование маршрутов на серверной части.
// Root route that displays all posts stored in database.
app.get("/", (req, res) => {
let perPage = 3;
let totalItems;
let currentPage = parseInt(req.query.page) || 1;
Post.find()
.countDocuments()
.then(count => {
totalItems = count;
Post.find()
.sort({ date: -1 })
.skip((currentPage - 1) * perPage)
.limit(perPage)
.then(posts => {
console.log(currentPage);
res.render("home", {
posts,
currentPage,
totalItems
});
});
})
});
// Route for updating specific post.
app.put('/edit/:id', (req, res) => {
let currentPage = parseInt(req.query.page) || 1;
const postEdit = {
title: req.body.postTitle,
content: req.body.postBody
};
Post.findByIdAndUpdate(req.params.id, postEdit, (err, post) => {
if (err) {
console.log(err);
} else {
res.redirect("/?page=" + currentPage);
}
});
});
// Route for deleting specific post.
app.post("/delete", (req, res) => {
const deletePost = req.body.delete;
let currentPage = parseInt(req.query.page) || 1;
Post.findByIdAndRemove(deletePost, (err) => {
if (err) {
console.log(err);
} else {
res.redirect("/?page=" + currentPage);
}
});
});