Я пытаюсь отправить некоторые данные из формы, вложенной в. Я предоставлю код и объясню это.
EJS:
<%if (projects[i].status == "Created") {%>
<td>
<form method="get" action="/updateEngineer/<%=projects[i]._id%>">
<select name="eng">
<% for(var k = 0; k < engineers.length; k++){%>
<option value="teeeest"> <%=engineers[k].local.email%></option>
<%}%>
</select>
</br><a type="submit"href="/updateEngineer/<%=projects[i]._id%>"class="btn btn-success">Update Engineer</a>
</form>
</td>
<%}%>
И я попал на мою серверную сторону:
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');
});
}
}
});
})
Он успешно вызывает эту программу, но когда я печатаю, req.body.eng возвращает неопределенное значение, а когда я печатаю req.body, он возвращает {}. Я не уверен, почему это не работает, поэтому любая оценка этого будет принята с благодарностью