更大的项目Node.js和RESTful API

更大的项目Node.js和RESTful API,node.js,rest,architecture,Node.js,Rest,Architecture,我正在研究node.js,它看起来确实是一个非常好的环境。我曾使用过很多不同的技术和服务器,主要是php和Java(jsp),但涉猎过som RoR和Python 我发现node.js非常容易启动和运行,使用它感觉非常自然,我还发现了一些不错的入门级教程 我只是缺少一些中间资源。例如,在创建更大的框架或api时,您将如何构造或构建它。我设置了一些较小的api来尝试它的发展方向,如下所示: 我使用了Express框架来创建http服务器、侦听端口、设置Express对象并绑定一些请求 然而,这些都

我正在研究node.js,它看起来确实是一个非常好的环境。我曾使用过很多不同的技术和服务器,主要是php和Java(jsp),但涉猎过som RoR和Python

我发现node.js非常容易启动和运行,使用它感觉非常自然,我还发现了一些不错的入门级教程

我只是缺少一些中间资源。例如,在创建更大的框架或api时,您将如何构造或构建它。我设置了一些较小的api来尝试它的发展方向,如下所示:

我使用了Express框架来创建http服务器、侦听端口、设置Express对象并绑定一些请求

然而,这些都是非常小的,目的是学习,如果我想扩大API的生产规模,也许还想做其他事情,比如服务网页。我发现很难看到建筑的外观

这一点很模糊,因为我还是node.js新手,但我主要考虑的是,如果您通常将所有api保存在一个文件中,或者是否有好的方法将其拆分为模块?如果有人知道任何资源,那么在node.js中工作时,可以多谈谈如何设计架构


很抱歉提出了这个模糊的问题,谢谢阅读

在我看来,如果您想要构建复杂或大型的API,Express是一种很好的方式

它是其他易于测试(例如摩卡咖啡或茉莉花)和定制的产品之一,特别是由于其独特的功能

对于目录结构,我通常(至少)使用以下内容:

  • app.js:主要入口点。将创建express应用程序,指示每个路由前缀使用哪个控制器,并分配中间件
  • 控制器:将包含控制器和处理请求的函数,其样式与标准MVC框架中的样式相同(例如UserController,…)。每个控制器将创建一个对象并将其导出。在控制器内部,各个处理程序负责各个API请求,例如/API/users/list。它将使用一些库来访问您的数据(例如Mongoose for MongoDB),然后将响应发送给客户端
  • 模型:将包含模型及其所有属性和方法。在我的情况下,这将是猫鼬模型
  • 中间件:将包含项目的各种中间件。一个实际的例子是中间件检查传入请求中的访问令牌,如果没有,则返回403HTTP错误
  • 助手:各种助手
  • 测试:API的单元测试
这可能是最小的目录组织。除此之外,您可能希望使用一个模板引擎(如EJS)来为网页提供服务。看一看


这只是给你一个express目录结构的概览,当然还有很多(更好的?)其他的可能性。希望这能给你一个快速而有用的见解:)

试试yeoman generator angular fullstack,找到最佳实践。谢谢,这很有帮助!非常好的例子和易于理解的想法。