2016-07-18 6 views
1

Ich entwerfe eine Plattform, die 3 Micro-Dienste verwenden; Ein Socket-Server, ein Front-End-Server ausgeführt expressjs und ein E-Mail-Server transaccional E-Mails senden.Share-Code-Abhängigkeiten zwischen Micro-Services in Nodejs

Die Datei strutture Projekt ist sehr einfach:

project_root 
|______________ socket 
|______________ frontend 
|______________ email 

In jedem Ordner befindet sich ein NodeJS Projekt. Um miteinander zu kommunizieren, verwenden diese Mikrodienste eine einfache Redis pub/sub implementation. Die Sache ist, in jedem node_modules Ordner wird ein NPM-Paket für die Redis-Abhängigkeit duplizieren. Also gibt es doppelten Code und wenn ich das Paket aktualisieren will, muss ich es 3 mal machen.

Verwende ich einen falschen Ansatz?

Antwort

1

Ich startete ein NodeJS-Projekt mit einer ähnlichen Struktur und es wurde schnell ein Durcheinander. Ich habe node_modules, common code und package.json in den Projektstamm verschoben und separate Startup-Dateien verwendet, damit ich den gemeinsamen Code zwischen den Projekten teilen konnte. Es erwies sich als viel einfacher zu implementieren und zu warten.

root 
|_ socket 
|_ frontend 
|_ email 
|_ node_modules 
|_ package.json 
|_ app_socket.js 
|_ app_frontend.js 
|_ app_email.js