Comment faire pour se connecter à MySQL à ReactJS
Comment puis-je me connecter à MySQL à ReactJS? Existe-il des exemples ou des tutoriels qui expliquent ce que je peux suivre?
J'ai écrit le code suivant, mais y a des erreurs:
var React = require('react');
var ReactDOM = require('react-dom');
var mysql = require('mysql');
var express = require('express');
var app = express();
var fs = require('fs');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : ' ',
database : 'node'
});
connection.connect();
app.post('/users', function(req, res) {
var user = req.body;
var query = connection.query('INSERT INTO signup SET ?', user, function(err, result) {
});
res.end('Success');
});
Quel est le problème avec ce code?
- Quelle erreur avez-vous?
- Il n'y a aucun lien entre les deux.... Si vous voulez rendre réagir dans le backend, il suffit de récupérer les données de mysql et de le transmettre à la prestation de réagir. Mais il n'y a pas de réagir-dom dans le backend.
- Reactjs est une bibliothèque côté client. Et une base de données mysql est comme backend que vous pouvez obtenir. Une meilleure façon de se connecter à une base de données à l'arrière-plan est de construire un serveur d'api. Ce cache votre base de données sensible info et permet de moins d'attelage.
- dans la tâche coureur explorer il n'y a pas d'erreur, mais lorsque mon application est ouverte sur console il y a une erreur JS.js:40217 Uncaught Error: Impossible de trouver le module "fs" à webpackMissingModule (JS.js:40217) à l'Objet.<anonyme> (JS.js:40217) à webpack_require (JS.js:20) à l'Objet.<anonyme> (JS.js:37793) à l'Objet.<anonyme> (JS.js:38417) à webpack_require (JS.js:20) à l'Objet.<anonyme> (JS.js:38440) à webpack_require (JS.js:20) à l'Objet.<anonyme> (JS.js:33868) à webpack_require (JS.js:20)
- Avant d'essayer de faire un serveur de rendu côté à Réagir vous devez d'abord gérer pour appeler l'API de votre côté client Réagir. Pour cela, vous devrez peut-être utiliser redux-thunk, redux-saga, mobx, ou ... je crois que vous mélangez un peu tout. Aussi, à la demande de votre base de données, je vous suggère d'utiliser un ORM, il sera beaucoup plus facile et plus propre.
- Ce n'est pas une bonne pratique pour accéder à la base de données de cette façon. Veuillez développer une API de serveur pour l'accès à la base de données. vous pouvez utiliser Node.js pour la création d'Api et de ces Api peuvent être accessibles via react.js
Vous devez vous connecter pour publier un commentaire.
L'erreur que vous avez mentionné dans les commentaires, c'est parce que vous essayez d'exiger
fs
module, cependant, n'existe pas dans le front-end avec webpack par défaut. Bien sûr, vous pourriez fournir un polyfill mais ce n'est pas ce qui est demandé ici.Donc, nous allons prendre un peu de recul. Comment peut-on se connecter à MySQL?
La méthode habituelle pour se connecter à MySQL est prise d'une connexion TCP, bien normalement pilote MySQL fait cela pour vous afin que vous n'avez pas besoin de savoir exactement comment, mais cela signifie que vous ne pouvez pas vraiment se connecter à partir de Javascript sur le navigateur.
Cependant, vous pouvez le faire dans le backend/côté serveur avec node.js ou tout autre langage côté serveur. La façon dont c'est normalement fait est que, le backend expose une HTTP(s) de l'API qui peut être consulté par le front-end. Cela pourrait être une API REST, GraphQL, ou même quelque chose d'aussi complexe que SAVON(que je n'ai pas suggérer) et grâce à cette API, la base de données est exposée. C'est une conception commune de l'habitude des applications web et des architectures.
En attendant, vous pouvez avec Mysql Labs HTTP plugin, vous pouvez exposer votre base de données vers le navigateur sans l'écriture d'une API de votre propre, mais bien sûr, si vous choisissez cette voie, vous devez savoir ce que vous faites et ont des normes de sécurité élevées.