[英]Plugin system for Node.JS
我目前的工作在一個大型應用程序的Node.js ,之上快車 。
我希望能讓插件兼容,所以我開始編寫自己的小插件系統,其文件結構如下所示:
root/
| plugins.json # configures all plugins
| plugins # contains all plugins
| | MyPlugin # contains MyPlugin
| | | MyPlugin.js # defines Application hooks for MyPlugin
| | | ...
MyPlugin/
當然還包含路由,控制器,視圖,特定資源等。
app
將調用MyPlugin
實例的標准掛鈎是:
moduleInit(app) # before starting the server or module has been loaded (if server is already running at module load)
moduleStart(app) # right after server has been started or not at all
moduleCleanup(app) # right before the party ends
到目前為止,這么好,但現在事情變得更復雜了(而且它們總是變得更加復雜),因為我必須考慮模塊初始化的順序(因為它們可能會將自己附加到處理程序堆棧中, use
, get
, post
等等),等等......
由於我對Node和Express還有點新手,我開始懷疑:是否有可能已經有一個好的引擎可以做到這一切? 我找不到一個,這讓我相信這可能是一個壞主意? 也許有一個更“節點” - 或“表達” - 我可以忽略的做事方式?
謝謝你的幫助!
不要浪費精力重新發明輪子 - 使用名為NPM Modules的現有解決方案:)
你覺得這不是方法,你是對的。
IMO的最佳方法是NodeJs的NPM模塊,你可以自己寫一些。
至於“get”/“post”/ etc的處理程序綁定執行順序 - 你仍然可以控制程序包加載順序,不要忘記,所以你可以用“標准”方式實現它。
編輯#1:
private
我沒有使用它,但架構師可能適合賬單https://github.com/c9/architect
Architect是Node.js應用程序的一個簡單但功能強大的結構。 使用Architect,您可以設置一個簡單的配置並告訴Architect您要加載哪些插件。 每個插件都使用Architect注冊,因此其他插件可以使用其功能。 插件可以作為NPM包進行維護,因此可以將它們放入其他Architect應用程序中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.