簡體   English   中英

如何構建Node CLI應用程序

[英]How to structure a node cli application

我想編寫一個節點cli應用程序,我想知道如何構造該應用程序。 我對node來說還很陌生,並且對構建此類應用程序時使用的所有設計模式感到困惑。 我希望能夠從命令行調用應用程序,但也可以將其用作節點模塊以進行更好的測試。

目前,我有一個文件,其中包含很多直接從cli調用的函數,但是我覺得這很難維護。

關於如何做這些事情,有什么好的著作嗎? 我看着rimraf,但它使我更加困惑。 謝謝你的時間

我不知道是否有“正確”的方式來做,但是我可以告訴您我如何處理與您類似的問題。 我想創建一個CLI和一個Visual Studio代碼插件,這樣人們就可以使用VSC和CLI(對於不使用VSC的人)的功能,所以我采取的方法是將所有邏輯在其自己的程序包中,然后創建其他兩個程序包,其中包括第一個程序包,一個用於CLI,另一個程序包需要“邏輯”程序包。

在CLI程序包中,您僅具有與命令處理嚴格相關的代碼,然后實際的情況就發生在邏輯程序包中。 以我為例,VSC插件包只有很少的代碼行,只有配置和對所需功能的調用。

然后關於代碼的結構一些建議:

  • 僅公開嚴格必要的內容
  • 根據通用功能將您的代碼隔離在不同的文件/類中(並轉到第1點)
  • 測試你的代碼
  • 整理你的代碼

但是這些是常識和獨立於語言的建議。

沒有構造Node.js應用程序的“標准”方法,但是您會注意到許多作者遵循類似的模式。 與其讓一個文件包含所有代碼,不如將其拆分為模塊,按功能分組。 看看Github上的這個倉庫,它對Node.js最佳實踐https://github.com/i0natan/nodebestpractices#1-project-structure-practices有一些很好的建議。

我還要添加幾個提示:確保您記錄了所有錯誤,請考慮為此使用Winston.js之類的東西。 如果發生嚴重錯誤,還應具有某種機制來重新啟動服務,例如Forever.js。

確保同樣要進行單元測試,這里有一些很好的測試框架,Jasmine,Mocha和Cucumber.js。

暫無
暫無

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

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