【发布时间】:2020-10-23 01:36:41
【问题描述】:
在 Express 应用中使用 delete 方法时遇到一个奇怪的问题。
这是我的 app.js 文档。我正在为“/电梯”路线使用电梯路由器。
app.js
app.use("/", indexRouter);
app.use("/users", usersRouter);
app.use("/passwordgenerator", passwordgeneratorRouter);
app.use("/elevators", elevatorRouter);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
next(createError(404));
});
// error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get("env") === "development" ? err : {};
// render the error page
res.status(err.status || 500);
res.render("error");
});
module.exports = app;
这是我的路线文件。我包括来自 app.js 的电梯路由器。似乎编辑路线工作正常。我只有“删除”方法的问题。
elevators.js
const express = require("express");
const router = express.Router();
const Elevator = require("../models/elevator");
const middleware = require("../middleware");
// Edit Elevator Route
router.get("/:id/edit", (req, res) => {
Elevator.findById(req.params.id, (err, foundElevator) => {
res.render("elevators/edit", { elevator: foundElevator });
});
});
// Delete Elevator Route
router.delete("/:id", (req, res) => {
Elevator.findByIdAndRemove(req.params.id, (err) => {
if (err) {
res.redirect("/elevators");
} else {
res.redirect("/elevators");
}
});
});
这是我的看法。我没有完全发布整个 html。相反,我复制了部分内容。我相信这就足够了。我使用邮递员直接发送“POST”方法,但仍然收到相同的 404 错误。我相信它与视图无关
查看
<div class="col-md-9">
<div class="card">
<img src="<%= elevator.image %>" class="card-img-top" alt="..." />
<div class="card-body">
<h4 class="card-title"><%= elevator.projectName%></h4>
<p><%= elevator.projectNumber %></p>
<% if(user) { %>
<form
class="delete-form"
action="/elevators/<%= elevator._id %>?_method=DELETE"
method="post"
>
<button class="btn btn-danger">Delete</button>
</form>
<% } %>
</div>
<div class="card-body">
<a href="/elevators" class="btn btn-light float-right">Back</a>
</div>
</div>
</div>
【问题讨论】:
标签: mongodb express mongoose methods