2016-09-16 2 views
-1

Ich habe gerade angefangen, MITTEL zu lernen und mein erstes Projekt damit zu erstellen.Wie organisiert man Methoden in MEAN MVC für Web, Ajax und API und vermeidet Code-Duplizierung?

Ich bin MVC-Modell mit Knoten JS und Express implementieren und es funktioniert gut.

Das Problem ist, dass ich mehrere Anrufer für Methoden mit den gleichen Daten haben - von API, direkt im Web und von angular in Web und Mobile. Und sie erwarten ein anderes Datenformat - einige reine HTML und andere JSON.

Die Frage ist, wie man Methoden richtig organisiert?

  • Mit Code-Duplizierung:
    Funktion A() (return gemacht html)
    Funktion AfromAPIorAJAX() (return JSON)

  • Oder vielleicht zusätzliche Parameter FORMAT haben und es in einen Router verwenden:
    Funktion A (Format) (falls das Format == HTML Rückkehr HTML sonst Rückkehr JSON)

  • Oder versuchen zu identif y Anrufer annehmen Art über XHR (nicht sicher, ob es für die API funktioniert) ?:
    Funktion A() (wenn req.xhr Rückkehr JSON sonst Rückkehr HTML)

Was können Sie empfehlen?

Wie organisieren Sie die Methoden in den großen MEAN-Projekten?

Danke.

UPDATE: Ein echtes Beispiel:

I Modell Artikel haben. Sein Controller haben Methoden: Erstellen, Auflisten, Löschen etc.

Ich möchte Seite auf der Website mit Route "/ Artikel", die alle aktuellen Artikel auflisten. Diese Seite muss auch Kategorien Filterblock haben - dass, wenn sie angeklickt wird, Artikelliste über AngularJS für Artikel aus dieser Kategorie aktualisiert wird (natürlich kann dies alles nur mit eckigen erfolgen, aber ich möchte eine Seite mit Standardartikeln zur Verfügung stellen und leicht von Google indiziert werden , und eckig nur zum Aktualisieren von Artikeln im laufenden Betrieb).

Ich möchte auch Route "/ api/articles", die Liste der Artikel im JSON-Format für GET-Anfrage zurückgeben (diese Route BTW möglicherweise auch von angular js Filter oben verwendet).

Also die Frage, wie viele Methoden ich für diesen Zweck in Article Controller erstellen muss - "list" und "renderList", oder nur "liste (format)" oder "list" das wird nach xhr suchen (wieder nicht Wenn API-Clients xhr) oder eine andere Ihrer Varianten senden?

+1

Es gibt keine „richtige“ Methode für Methoden in jeder Sprache zu organisieren. Was Sie bekommen, sind Meinungen ohne und objektive Fakten. Daher ist diese Frage off-topic. –

+0

Mike, ich aktualisierte Frage mit realen Beispiel. Ich weiß, es gibt viele Möglichkeiten und Code wird sowieso funktionieren, aber was ist professionell? Ich brauche einen Best-Practice-Rat, um hier einen sauberen Code zu haben. – Dmitry

+0

schwer zu verstehen, viel davon auch – charlietfl

Antwort

Verwandte Themen