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

时间:2019-04-16 02:19:32

标签: javascript node.js axios

这是我的代码,由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 个答案:

答案 0 :(得分: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

在项目的根目录中。

希望这会有所帮助!

答案 1 :(得分:-1)

尝试删除()

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);
})

答案 2 :(得分:-1)

如果您在Node.js服务器上使用Express,则要处理该请求,需要使它能够解析帖子数据的正文。

如果您还没有这样做:

在处理任何请求(Express v4.16及更高版本)之前将其包括在内

app.use(express.json())

答案 3 :(得分:-1)

谢谢大家!

这是我的最新代码。

//  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控制台中。

谢谢:)