2016-01-19 19 views
13

我試圖決定該怎麼辦我這種情況下:帶有angularjs和nodejs的SaaS應用程序,我如何組織不同的客戶端?

我想創建一個產品,我想在SaaS商業模式中出售,我已經有了後端或多或少的想法和一些代碼放置在nodejs中。它處理oAuth,會話,並在訪問某個端點時控制用戶的角色。

疑問在前端架構中: 每個客戶端都會共享相同的功能,但是他們頁面的設計將會彼此完全不同。 我想把儘可能多的應用程序邏輯放在服務中,所以我可以重用它,我的想法是隻將控制器/模板/指令從客戶端更改爲客戶端,這可以嗎?

我是否應該擁有不同的文件夾併爲來自nodejs的每個客戶端提供靜態文件? ex: in nodejs我會知道client1的url被調用,所以我會服務client1-index.html?

我應該把每個客戶端放在他們自己的nodejs服務器和他們自己的主機上嗎?

還有其他的方法嗎?

我希望能夠輕鬆地重複使用這些服務,因爲我將介紹對功能的更改或添加更多內容,並且我想輕鬆地升級。

還會有一個管理面板,它們對於所有這些面板都完全一樣,將會改變的部分是我的客戶的用戶看到的部分。

認爲它有許多客戶,並給他們每個人一個商店,所以他們可以出售他們的東西。他們想要一個管理頁面和一個公共頁面。管理頁面對於所有人來說都是一樣的,但公共頁面必須改變。

因此,應用程序在用戶之間共享相同的功能,但對於每個用戶來說看起來完全不同,您將如何做?

+0

雖然您有正確的想法,但[程序員堆棧交換](http://programmers.stackexchange.com/)可能會爲您提供更深入的答案。詢問一般的邏輯和架構問題在這裏比這裏更多,這裏大多是一個問及錯誤和語法的地方。爲了回答你的問題,請查閱一些關於[RESTful API/programming]的文章(http://stackoverflow.com/questions/671118/what-exactly-is-restful-programming)。爲您的視圖提供抽象「鉤子」是流行的,並且是RESTful API的一部分,允許可移植性和不同外觀。 – MikeJannino

回答

1

既然你似乎在使用Angular,你有沒有想過使用路由服務?查看更多關於它的地方:https://docs.angularjs.org/api/ngRoute/provider/ $ routeProvider

基本上它是基於url加載一個html頁面和一個控制器(JS文件)。例如,如果您的用戶只是移動到url.com/client1,並且angular會加載client1.html和client1CTRL。

簡單的結構將是以下:

  • Index.Html-提及任何相關性,在體內僅一個NG-視圖標籤
  • 模板(的HTML模板的每一個用戶)
    • 登錄
    • 聯繫
    • 客戶端1等等...
  • 腳本(JS)
    • 外部腳本(Jquery的,角ETC)
    • 指數。JS(在這裏,您將有所有的JS控制器的每一頁)
  • 樣式
    • CSS文件GO HERE

例角路由:Tutorial

var App = angular.module('saasApp', []); 

App.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/admin', { 
     templateUrl: 'templates/admin.html', 
     controller: 'AdminController' 
     }). 
     when('/client1', { 
     templateUrl: 'templates/client1.html', 
     controller: 'client1Controller' 
     }). 
     when('/login', { 
     templateUrl: 'templates/login.html', 
     controller: 'loginController' 
     }). 
     otherwise({ 
     redirectTo: '/login' 
     }); 
    }]); 

希望這適用於你正在嘗試做的事情。

-1

我想你的問題是關於建築。如果我要做同樣的後端和不同的前端,我會實現虛擬模板結構。

權限

我會:

  1. 有權利設置多個存儲超級用戶。
  2. 可以管理一個特定的商店

超級用戶模板管理管理員用戶。

  1. 我會在/管理/模板基本模板,當我創建一個新的商店,我將它們複製並在數據庫中把它們粘
  2. 我會在左側創建菜單與所有的模板和具有所見即所得的編輯器,允許我修改爲特定客戶的模板,並上傳其他資產(圖像,PDF等)
  3. 模板將支持痛飲語法
  4. 我想創建一個服務器的路由/得/ tempalte /:身份證及動態分析服務器上使用swig引擎的那些模板

我希望這有助於。這裏的關鍵是能夠通過瀏覽器更新模板,並通過Web面板將它們分發給新的商店/客戶。

相關問題