Est-il possible d'accéder aux bases de données MySQL dans le framework Angular ou serait-ce non sécurisé comme les autres scripts JavaScript et aurais-je besoin de poster vers une page PHP pour récupérer data/json
depuis une base de données
Réponses
Trop de publicités?1- Est-il possible d'accéder aux bases de données MySQL dans le framework angular?
La question n'est pas spécifique à Angular, mais OUI c'est possible, depuis MySQL 5.7, l'insertion, la mise à jour et la suppression d'enregistrements dans MySQL via HTTP est possible. Quelque chose comme ceci http://127.0.0.1:8080/sql/myhttp/SELECT+name_first,+name_last+FROM+names
référez ici
Par conséquent, vous pouvez interagir directement avec MySQL avec n'importe quel client HTTP sans aucun middleware.
Par client HTTP, je veux dire Curl, Wget ou toute bibliothèque/API HTTP de n'importe quel langage (ajax, request, fetch, axios ... pour JavaScript/node)
2 - Serait-ce aussi peu sûr que d'autres JavaScript?
Encore une fois, ce n'est pas spécifique à JavaScript, mais Oui c'est peu sûr (non recommandé) d'interagir directement avec la base de données depuis le client. Pourquoi ? Vous devez gérer les problèmes de sécurité de la base de données comme les injections SQL du côté client (Angular dans ce cas). C'est très inconfortable à faire.
Je recommande toujours d'avoir un middleware d'accès à la base de données (php, node, python ...) que d'interagir du côté client.
Je ne recommanderais pas FireBird car il accumule rapidement des limites, en plus il y a beaucoup d'inconvénients que vous ne pouvez pas vraiment voir, un bon article qui détaille cela est; Crisp.chat - Pourquoi vous ne devriez jamais utiliser Firebird Je recommanderais personnellement d'utiliser PHP pour la gestion du backend pour assurer la sécurité de la base de données et une logique backend plus complexe que vous pourriez avoir besoin, utilisez MySQL pour un usage général comme les blogs, les utilisateurs, etc. mais je suggérerais personnellement MongoDB pour les fonctionnalités de chat mais c'est à vous de voir.
// Module d'application
var dbApp = angular.module('dbApp',[]);
dbApp.controller("DbController",['$scope','$http', function($scope,$http){
// Fonction pour obtenir des données de la base de données
getDatafromDatabase();
function getDatafromDatabase(){
// Envoi de la requête aux fichiers php
$http.post('databaseFiles/yourfile.php').success(function(data){
// Stocke les données retournées dans la portée
$scope.dbData = data;
});
}
Et le fichier php que nous voulons appeler dans le script angularjs (yourfile.php)
Le fichier HTML ressemble à ceci
...
J'espère que cela vous aide