Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数据从React发送到NodeJS?_Javascript_Node.js_Axios - Fatal编程技术网

Javascript 如何将数据从React发送到NodeJS?

Javascript 如何将数据从React发送到NodeJS?,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'),fu

这是我的代码,它由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);
});

...
错误: 未定义

名称搜索为:未定义

有解决方案吗?

尝试删除


如果您在Node.js服务器上使用Express,要处理请求,需要使其能够解析post数据体

如果您没有这样做:

在处理Express v4.16及更高版本的任何请求之前,请包含此信息

app.useexpress.json

谢谢大家

这是我的最新代码

//  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控制台中显示的react文本框的输出


谢谢:

首先删除“/nameSearch”中的包装括号,使其成为“/nameSearch”。 然后,为了访问NodeJ中的请求主体,您需要使用主体解析器。 因此,在nodejs文件中添加以下代码:

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

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

app.use(bodyParser.json());
另外,不要忘记在项目中安装body parser,方法是:

npm i --s body-parser
在项目的根目录中


希望这有帮助

还是一样undefined@HazimanHamzil检查上面编辑的代码。如果仍然出现错误,请告诉我您的searchdata this.state.valueI删除了以及分号,导致错误仍然未定义搜索数据值:dadaada,这是我在react文件的文本框中输入的值如果searchdata不是Object,请尝试此axios.postBASE_URL+'/nameSearch',{searchdata}此代码有助于显示从未定义到{}的输出。这意味着什么?该代码片段使express能够解析post请求的主体。但您似乎正在从react文件发送post请求中的一个空对象。试着先检查一下。
npm i --s body-parser