PUT请求不将HTML表单数据作为对象

时间:2018-04-25 20:41:11

标签: html node.js express

我无法通过HTML表单将对象传递到PUT路径。当我尝试console.log时,'product'对象终端读取未定义。我已经安装了方法覆盖,如果我不尝试将数据作为对象传递,一切正常。例如name =“title”和name =“price”。

app.js

router.put('/events/:id', function(req, res){
   console.log(req.body.product);
   res.redirect('/events/');
});

HTML

<form action="/events/<%= product._id %>?_method=PUT" method="POST">
  <div class="form-group">
    <input class="form-control" type="text" name="product[title]" value="<%= product.title%>">
  </div>                
  <div class="form-group">
    <input class="form-control" type="text" name="product[price]" value="<%= product.price%>">
  </div>
  <div class="form-group">
    <button>Submit</button>
  </div>
</form>  

1 个答案:

答案 0 :(得分:0)

您的问题未正确配置body-parser,因为您可以访问中间件并从中打印出一些内容到您的控制台。只是为了确保你配置了这样的东西:

const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json({ type: 'application/json' }));

然后,您的应用应该正确地将输入值填充到req.body

相关问题