2017-01-30 122 views
-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)); 
}) 
+1

看起来好像你还没有正确设置'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){'并且让我们知道你是否看到了正确的响应 –

+0

在我的控制台窗口显示未定义,并且这个{} –

+0

您可以上传您的'server/index/app.js'代码,以便我们可以检查,还有你安装了'body-parser' ..?我假设你有。 –

回答

0

试着改变你的服务器代码这样的事情...

import config from './config'; 
import express from 'express'; 
const server = express(); 
import databaseInterface from './mongodbInterface'; 
import bodyParser from 'body-parser'; 


server.use(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; // why? 
// databaseInterface.createStudent("srikanthgec", 11); 
server.post('/create', function(req,res){ 
    console.log('req.body',req.body); // remove it once you see the correct data. 
    var response = { 
     value : req.body.value 
     //values : req.body.lastName 
    }; 
    console.log(value); 
    console.log(JSON.stringify(response)); 
    res.send(JSON.stringify(response)); 
}) 
相关问题