我试图从一个嵌套的表单中发送一些数据。我将提供代码并解释它。 EJS:
router.get('/updateEngineer/(:id)', function(req, res, next){
var o_id = new ObjectId(req.params.id).toString();
console.log(req.body.eng);
db.collection('projects').find({
"_id": ObjectId(o_id).toString
}).toArray(function(err, results) {
for (var i = 0; i < results.length; i++) {
if (results[i]._id == o_id) {
console.log(results[i]);
db.collection('projects').updateOne({
"_id": results[i]._id
}, {
$set: {
"engineerEmail": req.body.eng
}
}, function(err) {
console.log("success");
res.redirect('/projects');
});
}
}
});
})
我的服务器端:
extraData
它成功调用该程序,但是当我打印req.body.eng返回undefined时,当我打印req.body时它返回{}。我不确定为什么它不起作用,所以对此的任何见解将不胜感激
答案 0 :(得分:0)
您的表单方法为GET
,它会将表单数据作为url参数发送。您可以在路由处理程序中以req.query
的形式访问它。
但您应该使用POST
方法获取req.body
中的数据。