#javascript #node.js #axios
#javascript #node.js #axios
Вопрос:
Это мой код, в котором он состоит из файла React и файла Js.
// 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);
});
...
Ошибки :
не определено
Поиск по имени: не определено
Какие-либо решения?
Ответ №1:
Прежде всего удалите переносную скобку из (‘/ 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
в корневом каталоге вашего проекта.
Надеюсь, это поможет!
Ответ №2:
Спасибо, ребята!
Вот мой последний код.
// 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);
})
...
//
Это работает! Вывод из текстового поля react будет отображаться в консоли nodejs.
Спасибо 🙂
Ответ №3:
попробуйте удалить ()
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);
})
Комментарии:
1. Все то же, что и undefined
2. @HazimanHamzil проверьте отредактированный код выше. Если ошибка все еще возникает, сообщите мне ваши данные поиска
this.state.value
3. Я удалил (), а также точку с запятой, в результате ошибка все еще не определена
4. Значение данных поиска: dadaada, которое я ввел в текстовое поле в файле react
5. Если
searchdata
это не объект, попробуйте этот axios.post(BASE_URL ‘/nameSearch’,{searchdata})
Ответ №4:
Если вы используете Express на своем Node.js сервер, для обработки запроса вам необходимо включить его для анализа тела данных post.
Если вы этого не сделали:
Включите это перед обработкой любого запроса (Express версии 4.16 и выше)
app.use(express.json())
Комментарии:
1. Этот код помогает отображать выходные данные из undefined в {} . Что это значит?
2. этот фрагмент кода позволяет express анализировать тело post-запросов. но, похоже, вы отправляете пустой объект в запросе post (из вашего файла react). попробуйте сначала проверить это.