【问题标题】:put is not working in express jsput 在 express js 中不起作用
【发布时间】:2020-03-06 12:34:56
【问题描述】:

我有引用相同表格的 POST 和 PUT。当我单击提交按钮时,仅处理 POST 请求(因为 POST 和 PUT 具有相同的路由名称,这是 FORM 的操作),我该如何实现 PUT?

//App.js

app.post('/addClassified',routes().saveClassified);  -- POST
app.put('/addClassified',routes().updateClassified); -- PUT

app.get('/newClassified',function(req,res){
    res.render('newClassifieds'); //Rendering form
});

// newClassifieds.pug

// Method and action of FORM

form(method='POST' action='/addClassified')
    button.btn.btn-primary(type='submit') Save

//routes.js 路由

// 保存分类 -- POST

functions.saveClassified = function (req, res) {
     console.log(req.body.category);
};

// PUT -- 更新分类

functions.updateClassified = function (req, res) {

};

【问题讨论】:

标签: node.js express pug


【解决方案1】:

您必须知道 HTML5 只允许在表单中进行 GET 和 POST,因此如果您必须实现 PUT 操作,您可以按照以下步骤操作:

如何实现 PUT? 1.-安装“方法覆盖”npm 包。 2.-你必须像这样调用你的 app.js:

`var methodOverride = require("method-override");
app.use(methodOverride("_method"))`

3.-在您的操作表单中添加“_method=PUT”,如下所示:

form(method='POST' action='/addClassified/<%=thing._id%>?_method=PUT')

如果您还需要什么,请告诉我

【讨论】:

    【解决方案2】:

    1)安装方法覆盖包 npm install 方法覆盖 需要 index.js 中的包 \代码

    var methodOverride = require("method-override"); app.use(methodOverride("_method")) app.put("/edit",function(req,res){});

    \add _method=以like的形式放

     <form action="/edit/?_method=PUT" method="post" >
    

    【讨论】:

      猜你喜欢
      • 2016-12-28
      • 2022-01-25
      • 1970-01-01
      • 2017-07-17
      • 2018-09-06
      • 2017-07-01
      • 2021-11-27
      • 1970-01-01
      • 2014-06-07
      相关资源
      最近更新 更多