Как отправить данные из NodeJS в React?

#javascript #node.js #reactjs #axios

#javascript #node.js #reactjs #axios

Вопрос:

Это мой код, в котором он состоит из файла Js и файла React.

 //
// JS File 
//
...
app.post('/searchResult',function(req,res)
{
res.send(searchValue);
console.log(`----------------------------`);
console.log(`Search Result :`  searchValue);
})
...
//
// React File
//
...
axios.post(BASE_URL   '/searchResult')
.then(res => 
{
dataResult = res;
console.log(`The result :`  dataResult);
})
...
//
//
//
 

Результат: [объект Object]

Какие-либо решения?

Комментарии:

1. в вашем api верните json…. как это возвращает res.json(значение поиска)

2. В вашем приложении react попробуйте console.log(res.data)

3. @sathishkumar, я ставлю так, и результат по-прежнему остается [object Object] app.post(‘/ SearchResult’,function(req,res) { res.send(searchValue); console.log( ---------------------------- ); console.log( Search Result : searchValue); res.json(searchValue) })

4. @Israelkusaev Я пытаюсь console.log (res.data), и он ничего не показывает. означает ли это, что ему не удается передать значение?

Ответ №1:

Когда вы смотрите на response, он содержит много информации вместе с данными, которые вы отправили с конечной точки вашего api в качестве ответа, который приходит к вам в формате вложенного объекта. Итак, вам нужно указать, к какой части ответа вы хотите получить доступ. Попробуйте использовать следующее:

 dataResult = res.data;
OR
dataResult = res.body;

 

Надеюсь, это поможет!

Комментарии:

1. Я пробую как res.data, так и res.body. Результат для обоих остается тем же, что и [object Object]

2. оберните это в JSON.stringify. Как этот JSON.stringify(res.data)

Ответ №2:

Если вы хотите получить только ответ, это должно сработать:

     axios.post(BASE_URL   '/searchResult').then(({data}) => {
        console.log(data);
    })

 

и если вы возвращаете данные в виде строки, попробуйте:

 const result = JSON.parse(data);