2016-12-08 49 views
1

我試圖從reactJS向Node.js上的mysql數據庫插入表單數據。我是初學者,所以請幫助我。如何在node.js上連接reactJS和mysql

import React from 'react'; 
import Layout from './App.jsx'; 

class Header extends React.Component{ 

constructor(props) { 
    super(props); 
    this.handleSubmit = this.handleSubmit.bind(this); 
} 

handleSubmit(event) { 
var fname=this.refs.fname.value; //This variable holds firstname 
} 
render() { 
    return (
    <div> 
     <form onSubmit={this.handleSubmit}> 
     <h1>Registration Form: </h1> 
     <label> 
     First Name: 
     <input type="text" ref="fname" value={this.state.fname} /><br/><br/> 
     </label><br/> 
     <label> 
     Last Name: 
     <input type="text" ref="lname" value={this.state.lname} /><br/><br/> 
     </label><br/> 
    <input type="submit" value="Submit" />  
    </form> 
</div> 
); 
} 
} 
export default Header; 

上面的代碼是Header.jsx這使得形式

變量fname包含我要插入到mysql數據庫的價值。

回答

0

那麼,你的問題的答案可能會深入到通量(或redux)體系結構中,並討論服務,調度操作等。如果你想正確地做,那麼你可能需要了解這個東西。如果你想快速做到這一點,那麼你可以通過道具傳遞任何你想要的組件。例如:

var storeToDatabase = function(username) { 
    // here you call a backend endpoint with some library like superagent 
} 

<Header store={ storeToDatabase } /> 

// and then in your Header.jsx component 
handleSubmit(event) { 
var fname = this.refs.fname.value; 

this.props.store({ fname }); 
} 

所以,React只是關於渲染視圖。所有其他的東西都應該在它之外處理。

0

看起來你有點困惑。首先,你想要做的是向Node.js服務器發送一個請求,該服務器將處理請求並將其保存到數據庫中。您不要將React連接到MySQL。

要做到這一點,你可以安裝一個庫來提出請求,例如, superagent。你輸入它:import request from 'superagent'。那麼你應該做這樣的事情:

handleSubmit(event) { 
    var fname=this.refs.fname.value; //This variable holds firstname 
    request.post('/api/name').send({ name: fname }).end(callback); 
} 

哪裏callback是將收到服務器的響應,你可以做任何你想用它的功能。

在服務器中,如果你是使用快速exampling,你應該做這樣的事情:

app.post('/api/name', function(req, res) { 
    // code for saving the name in the database 
}) 

順便說一句,你不需要Redux的商店(其中克拉西米爾說)。這與Redux和應用程序狀態無關。