我无法通过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>
答案 0 :(得分:0)
您的问题未正确配置body-parser
,因为您可以访问中间件并从中打印出一些内容到您的控制台。只是为了确保你配置了这样的东西:
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json({ type: 'application/json' }));
然后,您的应用应该正确地将输入值填充到req.body
。