簡體   English   中英

如何在Node.JS中編寫“中間件”

[英]How to write a “middleware” in Node.JS

如果這個問題過於籠統,我們深表歉意。 這不是“基於觀點”答案的邀請。 不幸的是,在項目的這個階段,由於我在這個領域的知識有限,我只需要一些經驗豐富的人的指導

在一個大型公司項目中,我有一個基於NOSQL數據模型的Web服務。 我對該服務的設計影響不大。 由於數據結構的原因,在監督大型復雜移動應用程序(用於多個平台)的開發時,我注意到有時有時需要順序調用多個端點以獲取所需的信息。

例如:有必要首先調用發送某些參數的端點以獲取用戶ID,然后使用該用戶ID獲取有關該用戶的詳細信息。 系統無法在第一個呼叫上傳遞用戶詳細信息。 這導致客戶端上復雜的數據解析和后台處理。

為了簡化移動開發,我們現在要構建一個“中間件”層,以簡化移動客戶端的API。 該應用程序將調用中間件作為單個入口點,中間件將調用現有的端點以收集必要的數據並將結果傳遞回客戶端。

例如,客戶端將要求尋找某個用戶並通過一個API端點傳遞該用戶的某些屬性(例如,該用戶所有朋友的名字)。 中間件需要對后端進行多次調用:搜索用戶,使用結果(用戶ID)獲取用戶的詳細信息和朋友,使用傳遞的朋友的userID收集有關朋友的數據。 然后,中間件將打包信息並將其傳遞回客戶端。

同事的初步建議表明,Node.JS將是一個以可維護,可擴展的方式開發此類功能的良好框架。

好的,我知道如何在節點系統上運行簡單的服務器並管理路由,但是如何組織此項目,例如文件結構? 您將封裝哪些組件。 在Node之上是否有任何框架可以幫助完成這樣的任務?

我不是在尋找“意見”,而是尋求基於經驗或知識的有見地的建議。 在陳述了您不滿意的問題並提出了具體問題以澄清之后,請隨意對這個問題進行投票(我將盡快答復)。 謝謝。

您將如何組織這個項目,例如文件結構?

我已經在我的快速代碼結構 github存儲庫中描述了我的文件系統布局,該存儲庫也作為stackoverflow答案發布在這里

您將封裝哪些組件。

我認為可以將每個支持API的接口封裝為“模型”或“服務”類型的模塊。 如果要進行數據庫查詢,則可以將它們封裝到相關查詢的模型或至少模塊中。

在Node之上是否有任何框架可以幫助完成這樣的任務?

是的,很多。 我更喜歡將express作為基本的Web應用程序框架,而hapi是另一個強大的選擇。 還有其他一些較小的選項(更多用途庫)和較大的選項(更接近全功能框架),例如loopback或sails.js。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM