2017-07-01 1 views
1

Ich habe die JEE Web App bisher mit Spring Boot und jQuery entwickelt und das ist das erste Mal, dass ich eine NodeJS/Angular2 App entwickle. In der JEE-Anwendung werden sowohl die Client- als auch die Serverseite in eine einzige jar/war-Datei kompiliert. In meiner neuen Entwicklungsumgebung entwickle ich jedoch Client- und Serverseite als zwei separate Projekte (verschiedene Ports abhören) und rufe die Backend-URL von der Angular2-Dienstschicht auf. Ich habe ein Cross-Origin-Resource-Sharing-Problem (CORS).Angular2/NodeJS Projektstruktur und CORS Problem

Meine Frage ist, ist diese gängige Praxis, um Angular und NodeJS als zwei separate Anwendung zu entwickeln und lösen Sie das Problem CORS durch die Verwendung von Cors-Modul in NodeJS?

ich eine Lösung, wie unten von Knotenseite gefunden:

var cors = require('cors') 
var app = express() 
app.use(cors()) 

So schätze ich, wenn Sie mich

klären helfen können
  1. Rechts Projektstruktur in dieser Architektur
  2. Empfohlene Auflösung für die CORS Problem.

Grüße.

Antwort

0

Ja, es ist durchaus üblich, zwei separate Projekte für das Front- und Backend zu verwenden. Aber das bedeutet nicht, dass es der beste oder einzige Weg ist, es zu tun. Es hängt immer von Ihren spezifischen Anforderungen und der Größe Ihres Projekts ab. Bei kleineren Projekten ist es wahrscheinlich einfacher, beide Projekte im selben Repository zu haben, aber dies ist eine persönliche Präferenz.

In Bezug auf CORS hängt es wirklich davon ab, was Sie versuchen zu tun. Nur weil Sie zwei separate Repositories haben, bedeutet das nicht, dass Sie sie auf verschiedenen Domains/Ports bereitstellen müssen. Sie können beispielsweise nginx verwenden, um die Anfragen abhängig von der URL an Ihre API oder Ihr Frontend zu leiten. Wenn sie nicht auf der gleichen Domain/Port gehostet werden, müssen Sie CORS deaktivieren, wie Sie gesagt haben. Versuchen Sie, die Regeln so streng wie möglich zu gestalten und nur Ihre spezifische Domain zuzulassen.

+0

Vielen Dank für Tour-Antwort. Es verdeutlicht viel. – jine

+0

Gern geschehen. Wenn dies Ihre Frage beantwortet, können Sie das bitte akzeptieren? Vielen Dank! –