为什么此表格未达到所需的PUT路线?

时间:2019-09-04 15:00:41

标签: node.js express ejs

由于某种原因(我不知道),该表格不会提交给所需的路线。我正在使用此表单来更新数据库中特定文档的数据,但是无论我在表单的action属性中输入什么内容,都会得到错误的路线。

我正在使用method-override提交为PUT请求。我尝试在许多配置中编写action属性(绝对/相对/只是随机的东西,看我是否能得到任何东西)。我也尝试过删除enctype属性。

edit.ejs(通过GET / expenseReports /:id / edit访问):

<form id="ExpenseReport" action="/expenseReports/<%= expenseReport._id %>?_method=PUT" method="POST" enctype="multipart/form-data"> ... </form>

app.js:

methodOverride  = require("method-override");
...
app.use(methodOverride("_method"));
...
const expenseReportRoutes = require("./routes/expenseReports");
app.use("/expenseReports",expenseReportRoutes);

expenseReports.js:

router.put("/:id",  function(req,res){ ... });

提交此表单时,应在更新数据库中的文档数据后将其重定向到主页。

但是,这实际上是它的作用:

注意:在以下示例中,表单的method属性为“ POST”。

当我将action属性写为action =“ / expenseReports / <%= expenseReport._id%>?_ method = PUT”时,结果为:https://imgur.com/bwS9mOd

当我将action属性写为action =“ expenseReports / <%= expenseReport._id%>?_ method = PUT”时,结果是(不,我没想到这会起作用,但我想我会给(一枪):https://imgur.com/QHUnH2J

0 个答案:

没有答案