-2
无法发送数据到服务器。在控制台部分的反应它显示数据发送。但在控制台的服务器部分,它只显示{}。什么我面临无法发送数据到服务器使用反应和节点js
的问题,这是我的反应部分
import React from 'react';
import axios from 'axios';
class Createstudent extends React.Component {
constructor(props) {
super(props);
this.state = {value: 'sri'};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
}
handleSubmit(event) {
alert(this.state.value);
axios.post('http://localhost:8080/create',{value:this.state.value})
.then(function(response){
console.log("datasent");
})
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type="text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
export default Createstudent;
这是我的服务器部分
import config from './config';
import express from 'express';
const server = express();
import databaseInterface from './mongodbInterface';
import bodyParser from 'body-parser';
var urlencodedParser = bodyParser.urlencoded({extended : true});
server.set('view engine', 'ejs');
server.get('/', (req, res) => {
res.render('index', {
content: '...'
})
});
server.get('/',function(req,res) {
res.send("hello this is data");
console.log("datasent");
})
var value;
// databaseInterface.createStudent("srikanthgec", 11);
server.post('/create',urlencodedParser,function(req,res){
var response = {
value : req.body.value
//values : req.body.lastName
};
console.log(value);
console.log(JSON.stringify(response));
res.send(JSON.stringify(response));
})
看起来好像你还没有正确设置'body-parser'。 做这个var bodyParser = require('body-parser');'并且在设置'var app = express()'后添加这个'app.use(bodyParser.urlencoded({extended:true}))',然后改变这个'server.post('/ create',urlencodedParser,function(req,res){'到'server.post('/ create',function(req,res){'并且让我们知道你是否看到了正确的响应 –
在我的控制台窗口显示未定义,并且这个{} –
您可以上传您的'server/index/app.js'代码,以便我们可以检查,还有你安装了'body-parser' ..?我假设你有。 –