2016-03-30 50 views
3

我正在研究node.js,這看起來像一個非常漂亮的環境。我已經使用了很多不同的技術和服務器,主要是php和Java(jsp),但涉足som RoR和Python。更大的項目Node.js和RESTful API

我覺得node.js中很容易啓動和運行,而且感覺很自然的工作,我發現了一些不錯的入門級教程。

我只是缺少一些更多的中間資源。例如,當創建更大的框架或API時,您將如何構建或構建它。我設置了一些規模較小的API來嘗試一下它會去是這樣的:

我利用了快遞框架來創建一個HTTP服務器,監聽端口,建立一個明確的目標和限制了一些請求。

然而,這些已經相當小,其目的一直在學習,如果我想擴大生產的API的大小,也許是想要做其他的東西像服務網絡的網頁也是如此。我發現很難看到架構的外觀。

這是含糊我還是新的node.js,但我主要是想這樣的事情,如果你通常保持所有API中的一個文件,如果有好的辦法把它分解成模塊?如果有人知道的任何資源談了一點有關如何在node.js中

很抱歉的含糊不清的問題,並感謝工作閱讀時設計的架構。

+0

嘗試yeoman發生器angular-fullstack來尋找最佳實踐。 – Jay

回答

3

在我看來,如果您想構建複雜或大型的API,Express是最好的選擇。

這是在其他容易測試(例如與摩卡或茉莉花)和可定製的,特別是由於其middlewares

的目錄結構,我通常用的是(至少)以下內容:

  • app.js:主入口點。將創建快速應用程序,指示爲每個路徑前綴使用哪個控制器,並分配中間件。 Example from a previous project
  • 控制器:將以與標準MVC框架(例如UserController,...)相同的樣式包含控制器,這些控制器將處理請求。每個控制器將創建一個express Router對象並將其導出。在控制器內部,單個處理程序負責個別API請求,例如/api/users/list。它會使用一些庫來訪問您的數據(例如,MongoDB for MongoDB),然後將響應發送給客戶端。 Example (UserController.js)
  • 車型:將包含與所有的屬性和方法的模型。就我而言,這將是貓鼬模式。 Example (Song.js)
  • 中間件:將包含該項目的各種中間件。一個實際的例子是中間件檢查傳入請求中的訪問令牌,如果不是則返回403 HTTP錯誤。Example (AuthMiddleware.js)
  • 助手:各種助手
  • 測試:你API的單元測試

這可能是最小的目錄組織。最重要的是,您可能希望使用諸如EJS之類的模板引擎來爲網頁提供服務。看看« Use EJS to template your node application »

這只是給你一個快速目錄結構看起來像什麼的概述,但當然有很多(更好?)其他可能性。希望能給你一個快速而有用的見解:)

+0

謝謝,這有助於很多!很好的例子和容易遵循的想法。 – qrikko