如何在NodeJs上为RestAPI创build一个干净的体系结构

我正在考虑将一些REST服务移动到NodeJS。 我唯一担心的是这种解决scheme的架构。

它是否存在某个指导方针? 当然,我看到一些图书馆喜欢restify。 这是一个好的开始,但还不够。

我期待层的分离,dependency injection,unit testing,CSRF和更多。

看看这里: http : //nodeframework.com/

这是用于各种用途的Nodejs框架列表。 你会显示网页? 你可能会select一个MVC模型。 只需创build一个API? 你只需要一个REST API框架。

logging,unit testing,文档样式等的select并不是特定于Node的(尽pipe它是相对较新的)。 有多个unit testing框架,日志logging框架,文档样式/框架等。对Node以及Java,C ++和其他stream行语言都是如此。 这些框架的开发人员试图使用他们的软件“简单” – 因为你不会被捆绑成多个依赖关系,可以换出其他部分,轻松整合等等。

如果你正在寻找一个一体化的解决scheme,我怀疑你会find它。 因为每个人都有不同的品味,所以解决scheme的每个部分都有几个选项,您可以select适合您的部分(以及您的需求/客户)。 这次的作品可能下次不是最好的select。

我build议寻找一个网上的例子,接近你想要做的,然后按照他们的例子或从他们的演示版本,使用相同的模块。

编辑:在第一个链接之后,在这里有一个来自Joyent的框架的废弃列表。

编辑2: Joyent列表的这个特定部分可能对你有用。 也许那个“Boilerplate”风格的模块将会帮助你的search。

你可以检查这个post: https : //solidgeargroup.com/clean-architecture-in-nodejs

在讨论一些干净架构的模式时,比如创build一个适配器层来隔离业务逻辑和框架,使代码更加可重用和可testing。

包含代码示例用于连接REST和GraphQL API。 也为unit testing和mongo数据库连接

看看这个: https : //github.com/neiesc/ListOfMinimalistFrameworks#web-framework-for-nodejs

我使用了Express和Koa,它们都对REST架构非常有用。

还有Restify,以及其他一些框架,可以很容易地构build一个干净的REST API。

大多数这些框架支持testing,dependency injection等等。 我会build议尝试Express.js,因为这是最好的。