2017-01-30 54 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)); 
}) 
相關問題