Как отправить данные из React в NodeJS? - PullRequest
0 голосов
/ 16 апреля 2019

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

// React File //
... 

searchdata = this.state.value;        
console.log(`Search Data : ${searchdata}`);                
axios.post(BASE_URL + '/nameSearch',searchdata)  //
... 

// Js File //
...

app.post(('/nameSearch'),function(req,res)
{
console.log(req.body);
datasearch = req.body;
console.log(`This name search is :`+datasearch);
});

...

Ошибки: не определен

Поиск по названию: undefined

Какие-нибудь решения?

Ответы [ 4 ]

1 голос
/ 16 апреля 2019

Прежде всего удалите скобки-обертки из ('/ nameSearch'), сделайте его '/ nameSearch'. Затем, чтобы получить доступ к телу запроса в nodejs, вам нужно использовать анализатор тела. Итак, в вашем файле nodejs добавьте следующий код:

const bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: true }));

app.use(bodyParser.json());

Также не забудьте установить body-parser в свой проект, выполнив:

npm i --s body-parser

в корневом каталоге вашего проекта.

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

0 голосов
/ 16 апреля 2019

Если вы используете Express на своем сервере Node.js, для обработки запроса вам нужно включить его для анализа тела почтовых данных.

Если вы этого не сделали:

Включите это перед обработкой любого запроса (Express v4.16 и выше)

app.use(express.json())

0 голосов
/ 16 апреля 2019

Спасибо, ребята!

Вот мой последний код.

//  React File
...
    searchdata = this.state.value;
    console.log(`Data Search : ${searchdata }`);
    const datasearch = {
        searchdata:this.state.value
    }
    axios.post(BASE_URL + '/nameSearch',datasearch)
...
//
// Js File
app.post('/nameSearch',function(req,res){
console.log(req.body.searchdata);
datasearch = req.body.searchdata;
console.log(`This name search is :`, datasearch);
})
...
//

Это работает! Вывод текстового поля реагирования для отображения в консоли nodejs.

Спасибо:)

0 голосов
/ 16 апреля 2019

попробуй удалить ()

const searchdata = this.state.value;        
console.log(`Search Data : ${searchdata}`);                
axios.post(BASE_URL + '/nameSearch',searchdata)


app.post('/nameSearch',function(req,res){
 console.log(req.body);
 const datasearch = req.body;
 console.log(`This name search is :`, datasearch);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...