问题
When I have click on checkbox then req.body.task return undefined
.
<input type="checkbox" name="task" autocomplete="off" checked="" onchange="onToDochange({{id}})">
Perform on change function which return id of checked or unchecked checkbox.
function onToDochange(id) {
// console.log(id);
fetch('/checkbox', {
method: 'POST',
body: JSON.stringify({global: id})
})
.then(res=>res.json())
.then(res => console.log(res));
};
Routing
app.post('/checkbox', (req, res) => {
console.log(req.body.task);
});
Working with expressJS nodeJs template engine handlebars
回答1:
The way you are sending id is not correct.
What you need to do is bind your onclick event handler function and with that event get id or value whatever you need in the event handler function. Also you are setting id to a key called global but you are accessing with req.body.task which is not correct.
Workig code is available in codesandbox
Check below code for better understanding of how to send id and access the id in router.
<input type="checkbox" name="task" autocomplete="off" checked="" onclick='onToDochange(this)' value="task" id="2">
function onToDochange(event) {
// console.log(event.id);
fetch('/checkbox', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({"id": event.id})
})
.then(res=>res.json())
.then(res => console.log(res));
};
Routing
app.post('/checkbox', (req, res) => {
console.log(req.body.id);
});
来源:https://stackoverflow.com/questions/52423667/get-req-body-task-is-undefined-after-click-on-checkbox