получить req.body.task не определено после нажатия на флажок - PullRequest
0 голосов
/ 20 сентября 2018

Когда у меня установлен флажок, req.body.task return undefined.

<input type="checkbox" name="task" autocomplete="off" checked="" onchange="onToDochange({{id}})">

Выполнить функцию изменения, которая возвращает идентификатор флажка или не отмечен флажок.

function onToDochange(id) {
    // console.log(id);
    fetch('/checkbox', {
       method: 'POST',
       body: JSON.stringify({global: id})
     })
    .then(res=>res.json())
    .then(res => console.log(res));
};

Маршрутизация

app.post('/checkbox', (req, res) => {
    console.log(req.body.task);
});

Работа с рулем механизма шаблонов expressJS nodeJs

1 Ответ

0 голосов
/ 20 сентября 2018

Неверный способ отправки идентификатора.

Что вам нужно сделать, это связать вашу функцию-обработчик события onclick и с этим событием получить идентификатор или значение, что вам нужно в функции-обработчике события.Также вы устанавливаете id для ключа, называемого глобальным, но вы обращаетесь к файлу req.body.task, который является неправильным.

Рабочий код доступен в codesandbox

Проверьтекод ниже для лучшего понимания того, как отправить идентификатор и получить доступ к идентификатору в маршрутизаторе.

<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));
};

Маршрутизация

app.post('/checkbox', (req, res) => {
    console.log(req.body.id);
});
...