невозможно получить данные / статус ответа об успешном выполнении от узла / экспресса до моего клиентского приложения (реагировать): «ответ referenceerror не определен» - PullRequest
0 голосов
/ 25 января 2019

я сделал базовый узел / экспресс-сервер, и у меня есть маршрут, который обрабатывает отправку данных формы (я сделал с помощью реакции), почтовый запрос обрабатывается с использованием async / await с fetch api .. я не уверен, что проблема связана с моим маршрутом на стороне сервера или моей реализацией запроса post с помощью async / await fetch. однако сервер получает данные формы, он просто не возвращает ответ.

мой код:

узел / экспресс-маршрут

router.post('/add', function (req, res) {
    console.log(req.body);
    res.json({success : "Updated Successfully", status : 200});
});

примечание: console.log (печатает ожидаемые данные, но клиент не получает ответ корректно)

реализация после запроса:

const postRequestHelper = async (routePath, objectPayload) => {
    console.log("posting payload object: ");
    console.log(objectPayload);
    const rawResponse = await fetch(routePath, {
        method: 'POST',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(objectPayload)
    });
    const response = await rawResponse.json();
    return response;
};

export default postRequestHelper;

код отправки формы, где вызывается почтовый запрос:

async handleSubmit(event) {
    if(typeof this.state.validationMessages === "undefined"){

        // create payload data object
        let objectPayload = Object.assign({}, this.state);
        for(let key in objectPayload){
            if(!isInObject(key, formKeyConstants)) // delete any prop keys that aren't in formPropertyKeys js file
                delete objectPayload[key]
        }

        // send post request
        console.log(objectPayload);
        const response = await postRequestHelper("http://localhost:8080/user/add", objectPayload);

        // log response data
        console.log("response");
        console.log(response);
    }
    event.preventDefault();
}

Ответы [ 2 ]

0 голосов
/ 25 января 2019

проблема была с async await fetch api, похоже, проблема с await заключалась в прерывании ответа от сервера.

0 голосов
/ 25 января 2019

Как насчет попытки на вашем сервере return res.send(JSON.stringify({success : "Updated Successfully", status : 200}));

...