我想编写一个节点cli应用程序,我想知道我应该如何构造该应用程序。我对node来说还很陌生,并且对构建此类应用程序时使用的所有设计模式感到困惑。 我希望能够从命令行调用应用程序,但也可以将其用作节点模块以进行更好的测试。
目前,我有一个文件,其中包含很多直接从cli调用的函数,但是我觉得这很难维护。
关于如何做这样的事情,有什么好的著作吗?我看着rimraf,但令我更加困惑。谢谢您的时间
答案 0 :(得分:2)
我不知道是否有“正确”的方式来做,但是我可以告诉您我如何处理与您类似的问题。我想创建一个CLI和一个Visual Studio代码插件,这样人们就可以使用VSC和CLI(对于不使用VSC的人)的功能,所以我采取的方法是将所有逻辑在其自己的程序包中,然后创建其他两个程序包,其中包括第一个程序包,一个用于CLI,另一个程序包需要“逻辑”程序包。
在CLI软件包中,您将仅具有与命令处理严格相关的代码,然后真正的问题出现在逻辑软件包中。以我为例,VSC插件包只有很少的代码行,只有配置和对所需功能的调用。
然后针对代码的结构提出一些建议:
但是这些是常识和独立于语言的建议。
答案 1 :(得分:0)
没有一种“标准”的方式来构建Node.js应用程序,但是您会注意到许多作者遵循类似的模式。与其让一个文件包含所有代码,不如将其拆分为模块,按功能分组。看看Github上的这个仓库,它对Node.js最佳实践https://github.com/i0natan/nodebestpractices#1-project-structure-practices有一些很好的建议。
我还要添加几个指针:确保记录了所有错误,请考虑为此使用Winston.js之类的东西。如果发生严重错误,还应具有某种机制来重启服务。 Forever.js。
确保同样要进行单元测试,其中有一些不错的测试框架,包括Jasmine,Mocha和Cucumber.js。