I want to update the data of the row of my table developed with Node.js on the backend, React on frontend and MySQL about the database.
My Edit class:
constructor(props) {
super(props)
this.state = {
clients: [],
Prenom: '',
Nom: '',
FAX: '',
Telephone: '',
Email: '',
Adresse1: '',
Adresse2: '',
Code: props.match.params.Code
}
// this.logChange = this.logChange.bind(this);
this.handleEdit = this.handleEdit.bind(this);
}
handleEdit(event) {
//Edit functionality
//event.preventDefault()
var client = {
Prenom: this.state.Prenom,
Nom: this.state.Nom,
FAX: this.state.FAX,
Telephone: this.state.Telephone,
Email: this.state.Email,
Adresse1: this.state.Adresse1,
Adresse2: this.state.Adresse2
}
axios({
method: 'put',
url: "http://localhost:4000/app/editclient/" + this.props.match.params.Code,
data: client,
withCredentials: true,
headers: {
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json",
"Accept": "application/json",
}
}).then(function(response) { // empty form
this.setState({
Code: ""
});
this.setState({
Prenom: ""
});
this.setState({
Nom: ""
});
this.setState({
FAX: ""
});
this.setState({
Telephone: ""
});
this.setState({
Email: ""
});
this.setState({
Adresse1: ""
});
this.setState({
Adresse2: ""
});
}.bind(this)).catch(function(error) {
console.log(error);
});
event.preventDefault();
}
<Button type="submit" color="success" onClick={(event) => this. handleEdit(event)} >Modifier</Button>
My router:
exports.editclient = function(req, res) {
var data = {
Prenom: req.body.Prenom,
Nom: req.body.Nom,
FAX: req.body.FAX,
Telephone: req.body.Telephone,
Email: req.body.Email,
Adresse1: req.body.Adresse1,
Adresse2: req.body.Adresse2,
};
var Code = req.params.Code
console.log(req.params);
// var Code = data.Code
connection.query("UPDATE clients set ? WHERE Code = ? ", [data, req.params.Code], function(error, results, fields) {
if (error) throw error;
else {
res.send(JSON.stringify(results));
console.log("Data is updated");
}
});
};
My server:
router.put('/editclient/:Code', clients.editclient);
I run the backend with Postman with URL http://localhost:4000/app/editclient/2222
it works well, but when I run the frontend, the data are not updated and I get :
How can I fix that ?