123 votes

JavaScript peut-il se connecter à MySQL ?

JavaScript peut-il se connecter à MySQL ? Si oui, comment ?

1 votes

Non, sauf si vous ne parlez pas du JavaScript dans le navigateur.

3 votes

Qu'en est-il du JavaScript côté serveur (par exemple, via Rhino) ? Peut-on se connecter à une base de données ?

10 votes

Ou Node.js fonctionnera aussi bien

94voto

LeeGee Points 833

JavaScript côté client ne peut pas accéder à MySQL sans une sorte de pont. Mais les affirmations en gras ci-dessus, selon lesquelles JavaScript n'est qu'un langage côté client, sont incorrectes. JavaScript peut fonctionner côté client et côté serveur, comme avec Node.js.

Node.js peut accéder à MySQL par quelque chose comme https://github.com/sidorares/node-mysql2

Vous pouvez également développer quelque chose en utilisant Socket.IO.

Vouliez-vous demander si une application JS côté client peut accéder à MySQL ? Je ne suis pas sûr que de telles bibliothèques existent, mais elles sont possibles.

EDIT : Depuis l'écriture, nous avons maintenant Cluster MySQL :

Le pilote JavaScript MySQL Cluster pour Node.js est exactement ce qu'il semble être : un connecteur qui peut être appelé directement depuis votre code JavaScript pour lire et écrire vos données. Comme il accède directement aux nœuds de données, il n'y a pas de latence supplémentaire due au passage par un serveur MySQL et à la nécessité de convertir le code/les objets JavaScript en opérations SQL. Si, pour une raison quelconque, vous préférez qu'il passe par un serveur MySQL (par exemple, si vous stockez des tables dans InnoDB), cela peut être configuré.

56voto

Timbergus Points 444

Si vous souhaitez vous connecter à une base de données MySQL en utilisant JavaScript, vous pouvez utiliser Node.js et une bibliothèque appelée mysql . Vous pouvez créer des requêtes, et obtenir les résultats sous forme de tableau de registres. Si vous voulez l'essayer, vous pouvez utiliser ma générateur de projets pour créer un backend et choisir MySQL comme base de données à connecter. Ensuite, il suffit d'exposer votre nouvelle API REST o GraphQL à votre front et commencez à travailler avec votre base de données MySQL.


VIEILLE RÉPONSE LAISSÉE PAR LA NOSTALGIE

ALORS

Si je comprends bien la question, et corrigez-moi si je me trompe, elle fait référence au modèle classique de serveur avec JavaScript uniquement du côté client. Dans ce modèle classique, avec LAMPE (Linux, Apache, MySQL, PHP) le langage en contact avec la base de données était PHP, donc pour demander des données à la base de données vous devez écrire des scripts PHP et echo les données renvoyées au client. En gros, la répartition des langues selon les machines physiques était la suivante :

  1. Côté serveur : PHP et MySQL.
  2. Côté client : HTML/CSS et JavaScript.

Cela répondait à un modèle MVC (Model, View, Controller) où nous avions la fonctionnalité suivante :

  1. MODÈLE : Le modèle est ce qui traite les données, dans ce cas, les scripts PHP qui gèrent les variables ou qui accèdent aux données stockées, dans ce cas, dans notre base de données MySQL et les envoient sous forme de données JSON au client.
  2. VIEW : La vue est ce que nous voyons et elle doit être complètement indépendante du modèle. Elle doit juste montrer les données contenues dans le modèle, mais elle ne doit pas avoir de données pertinentes sur elle. Dans ce cas, la vue utilise HTML et CSS. HTML pour créer la structure de base de la vue, et CSS pour donner la forme à cette structure de base.
  3. CONTROLEUR : Le contrôleur est l'interface entre notre modèle et notre vue. Dans ce cas, le langage utilisé est le JavaScript et il prend les données que le modèle nous envoie sous forme de paquet JSON et les place dans les conteneurs qui offrent la structure HTML. La façon dont le contrôleur interagit avec le modèle est en utilisant AJAX . Nous utilisons GET y POST pour appeler les scripts PHP du côté serveur et pour récupérer les données retournées par le serveur.

Pour le contrôleur, nous avons des outils vraiment intéressants comme jQuery comme bibliothèque de "bas niveau" pour contrôler la structure HTML (DOM), puis de nouvelles bibliothèques de plus haut niveau, telles que Knockout.js qui nous permettent de créer des observateurs qui relient différents éléments du DOM en les mettant à jour lorsque des événements se produisent. Il existe également Angular.js par Google qui fonctionne de manière similaire, mais semble être un environnement complet. Pour vous aider à choisir entre les deux, voici deux excellentes analyses des deux outils : Knockout vs. Angular.js y Knockout.js vs. Angular.js . Je continue à lire. J'espère qu'elles vous aideront.

MAINTENANT

Dans les serveurs modernes basés sur Node.js, nous utilisons JavaScript pour tout. Node.js est un environnement JavaScript avec de nombreuses bibliothèques qui fonctionnent avec Google V8, le moteur JavaScript de Chrome. La façon dont nous travaillons avec ces nouveaux serveurs est la suivante :

  1. Node.js y Express : L'unité centrale où le serveur est construit. Nous pouvons créer un serveur avec quelques lignes de code ou même utiliser des bibliothèques comme Express pour rendre encore plus facile la création du serveur. Avec Node.js et Express, nous gérerons les requêtes des clients adressées au serveur et y répondrons avec les pages appropriées.
  2. Jade : Pour créer les pages, nous utilisons un langage de modélisation, dans ce cas, Jade, qui nous permet d'écrire des pages Web comme nous écrivions du HTML, mais avec des différences (cela prend un peu de temps mais c'est facile à apprendre). Ensuite, dans le code du serveur pour répondre aux pétitions du client, il suffit de rendre le code Jade en un "vrai" code HTML.
  3. Stylus : Similaire à Jade mais pour CSS. Dans ce cas, nous utilisons une fonction middleware pour convertir le fichier stylet en un véritable fichier CSS pour notre page.

Ensuite, nous avons un grand nombre de paquets que nous pouvons installer en utilisant la commande NPM (gestionnaire de paquets Node.js) et les utiliser directement dans notre serveur Node.js en le demandant simplement (pour ceux d'entre vous qui veulent apprendre Node.js, essayez ceci tutoriel pour débutants pour une vue d'ensemble). Et parmi ces paquets, vous en avez certains pour accéder aux bases de données. Grâce à eux, vous pouvez utiliser JavaScript du côté serveur pour accéder aux bases de données My SQL.

Mais le mieux que vous puissiez faire si vous voulez travailler avec Node.js est d'utiliser les nouvelles bases de données NoSQL comme MongoDB basé sur des fichiers JSON. Au lieu de stocker des tables comme MySQL, il stocke les données dans des structures JSON, de sorte que vous pouvez mettre des données différentes dans chaque structure, comme des vecteurs numériques longs, au lieu de créer d'énormes tables pour la taille de la plus grande.

J'espère que cette brève explication vous sera utile, et si vous voulez en savoir plus, voici quelques ressources que vous pouvez utiliser :

  • Tête d'oeuf : Ce site est plein d'excellents petits tutoriels sur JavaScript et son environnement. Il vaut la peine d'être essayé. Et les remises sont faites de temps en temps.
  • École de code : Avec un cours gratuit et très intéressant sur les outils Chrome Developer pour vous aider à tester le côté client.
  • Codecademy : Avec des cours gratuits sur HTML, CSS, JavaScript, jQuery et PHP que vous pouvez suivre avec des exemples en ligne.
  • 10gen Education : Avec tout ce que vous devez savoir sur MongoDB dans des tutoriels pour différentes langues.
  • W3Schools : Celui-ci a des tutoriels sur tout cela et vous pouvez l'utiliser comme lieu de référence car il a beaucoup d'exemples de shortcode vraiment utiles.
  • Udacity : Un endroit avec des cours vidéo gratuits sur différents sujets, avec quelques cours intéressants sur le développement web et mon préféré, un cours WebGL étonnant pour les graphiques 3D avec JavaScript.

J'espère que cela vous aidera à démarrer.

Amusez-vous bien !

0 votes

Belle réponse détaillée expliquant les mécanismes.

0 votes

Merci :) Je viens d'ajouter une mise à jour à la fin de la réponse pour résoudre le problème. Vous pouvez utiliser un serveur node avec une bibliothèque appelée "mysql", et j'ai ajouté un lien vers un générateur d'API que j'ai créé et que vous pouvez utiliser pour démarrer un nouveau projet API. J'espère que cela vous aidera.

0 votes

Re "alors" : L'utilisation de JavaScript côté serveur remonte à 1995, lorsqu'il a été inclus dans le serveur Netscape Enterprise. Peu après, Microsoft a intégré "JScript" dans son serveur IIS. JavaScript sur le serveur n'est pas, loin s'en faut, nouveau.

29voto

falkon Points 720

Non, JavaScript ne peut pas se connecter directement à MySQL. Mais vous pouvez combiner JS avec PHP pour le faire.

JavaScript est un langage côté client et votre base de données MySQL sera exécutée sur un serveur.

95 votes

Petite remarque : le fait que JavaScript fonctionne côté client n'a RIEN à voir avec le fait qu'il ne peut pas se connecter à un serveur de base de données. Il se pourrait très bien (bien que très peu probable) qu'une future version du langage ajoute des API pour accéder à des bases de données distantes.

3 votes

Je n'appellerais pas cela "mélanger JS avec PHP", cependant. Ce que vous pourriez faire, c'est laisser le code PHP générer du code JavaScript et des données (json, par exemple) qu'il a récupérées à l'avance dans MySQL. Ou vous pourriez utiliser PHP sur un serveur pour fournir une interface http(json/REST/SOAP/... peu importe) pour accéder aux données que le code php récupère de MySQL - et cette interface http peut être appelée par du code JavaScript s'exécutant n'importe où, principalement un brwoser. Aujourd'hui, dire que JavaScript est côté client n'est plus d'actualité - regardez Node.js par exemple.

15 votes

"JavaScript est un langage côté client" Pas nécessairement : pas plus que Java.

8voto

Kerry Points 138

Je pense que vous devriez ajouter quelque chose comme le PHP dans l'équation. PHP pour interagir avec la base de données et ensuite vous pourriez faire des appels AJAX avec Javascript.

8voto

Dean Harding Points 40164

La réponse est simple : non.

JavaScript est un langage côté client qui s'exécute dans le navigateur ( node.js ) et MySQL est une technologie côté serveur qui fonctionne sur le serveur.

Cela signifie que vous utilisez généralement un langage côté serveur comme ASP.NET ou PHP pour vous connecter à la base de données.

1 votes

Javascript (sous forme de navigateur côté client) est utilisé chaque jour pour se connecter aux technologies côté serveur (Apache, Nginx, PHP, NodeJS, etc.) fonctionnant sur le serveur. La définition même de serveur/client exige que le "fossé" qui les sépare soit surmontable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X