Ist es ratsam, eine Anwendung mit nur Angular für das Front-End und CouchDB/Cloudant oder MongoDB als Datenbank zu erstellen, da diese DB JSON-Daten direkt liefern kann? Funktioniert es, wenn ich KEINE Middleware in Java oder Node oder PHP verwende? Ich möchte Angular und jede der Nosql DB verwenden.Angular mit Nosql DB
Antwort
Sie könnten angular für das Frontend und die serverseitige Sprache im Backend verwenden. Zur direkten Verbindung - Sie können die DB direkt abfragen. Jede DB verfügt über eine REST-API, mit der Sie direkt vom Client aus mit dieser kommunizieren können. Zum Beispiel hat MongoDB dies: https://docs.mongodb.org/ecosystem/tools/http-interfaces/ Hoffe das hilft. Wenn es ratsam ist? Dies ist eine Meinungsfrage und zur Debatte.
Sie könnten technisch eine Full-Stack-Anwendung nur mit AngularJS entwickeln, die die REST-API eines DBaaS aufruft, und es würde funktionieren. Allerdings sollten Sie das nicht tun, aus den folgenden Gründen:
- Alle Ihre Geschäftslogik auf der Client-Seite laufen würde, und dies bedeutet, dass jeder sehen kann (! Und ändert) im Browser alle Ihre Business-Domain-Logik, Ihre Sicherheitskontrollen, Feldvalidierungen usw. mit Tools wie FireBug oder den in jedem Browser enthaltenen Entwicklertools
- Wo würden Sie Ihre DB-Zugangsdaten anlegen und verwalten?
- Sie würden einen Code erhalten, die wirklich schwer zu verwalten, nicht leicht anpassen, um zukünftige
ändert Denken Sie an die Regel hohe Kohäsion, lose Kopplung.
Generell Sie immer irgendeine Art von Server-Seite-Logik-Schicht haben sollten (die „Controller“, wenn Sie mit dem MVC-Framework vertraut sind) für all oben genannte Gründe und auch sicher zu entwickeln, wiederverwendbar und wartbar code. Wenn Sie eine Änderung in der Geschäftslogik implementieren müssen, gehen Sie zum API-Code, wenn Sie den gesamten Persistenzmechanismus ändern müssen, müssen Sie die Server-DB-Interaktion bearbeiten, nicht die Benutzerschnittstelle und so weiter ... Ansonsten jede zukünftige Änderung würde die gesamte Anwendung beeinflussen. Es ist eine gute Praxis, getrennte Module mit unterschiedlichen Verantwortlichkeiten zu halten (wie stellen wir die Daten dar ?, was muss durchgeführt werden?, Wie machen wir das Ergebnis?).
Es ist sehr wahrscheinlich nicht ratsam. Sie möchten die Datenbankanmeldeinformationen nicht in Ihrem clientseitigen Code verwalten oder müssen die Benutzeroberfläche neu schreiben, wenn sich die von Ihnen verwendete Datenbank ändert. – opiethehokie
Sie können sich je nach Ihren Bedürfnissen entscheiden. Sie sind richtig, dass Sie heute wahrscheinlich für Socket oder eine andere API mit einem Server zwischen Ihnen und der db gehen würden. Auf der anderen Seite ist die REST api aus einem bestimmten Grund da. – yccteam
Danke yccteam für Ihre Antwort. Sehr hilfreich. – user3001381