put不能用于快递js

时间:2017-10-24 10:17:34

标签: node.js express pug

我有POST和PUT指的是相同的FORM。当我点击提交按钮时,只有POST请求被处理(因为POST和PUT都有相同的路由名称,这是FORM的一个动作),我该如何实现PUT?

// App.js

ValidationRegister

// newClassifieds.pug

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

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

// routes.js ROUTES

//保存分类 - POST

// Method and action of FORM

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

// PUT - 更新分类

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

2 个答案:

答案 0 :(得分: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')

如果您还有其他需要,请告诉我

答案 1 :(得分:0)

1)安装方法覆盖包 npm install method-override 在index.js中需要包 \ code

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

\ add _method = put形式为

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