更大的项目 Node.js 和 RESTful API
Bigger projects Node.js and RESTful API
我正在研究 node.js,这看起来确实是一个非常不错的环境。我使用过很多不同的技术和服务器,主要是 php 和 Java (jsp),但也涉足 som RoR 和 Python.
我发现 node.js 非常容易上手,运行 使用起来感觉很自然,而且我找到了一些很好的入门级教程。
我只是缺少一些中间资源。例如,在创建更大的框架或 api 时,您将如何构建或构建它。我设置了一些较小的 api 来尝试它会像这样的地方:
我已经使用 Express 框架 创建了一个 http 服务器,监听了一个端口,设置了一个 express 对象并绑定了一些请求。
但是这些都非常小,目的是学习,如果我考虑扩大 API 的规模用于生产,也许还想做其他事情,比如服务网页.我发现很难看出架构的外观。
这很模糊,因为我对 node.js 还是个新手,但我主要考虑的事情是,如果您通常将所有 api 保存在一个文件中,或者是否有好的方法将其拆分进入模块?如果有人知道在 node.js
工作时更多地谈论如何设计架构的任何资源
抱歉问题含糊不清,感谢阅读。
在我看来,如果您想构建复杂的或大型的 API,Express 是不错的选择。
除其他外,它还易于测试(例如使用 Mocha 或 Jasmine)和可定制,这尤其要归功于它的 middlewares。
对于目录结构,我通常使用的是(至少)如下:
- app.js :主入口点。将创建 express 应用程序,指示每个路由前缀使用哪个控制器,并分配中间件。 Example from a previous project
- controllers :将包含控制器,将处理请求的功能,与标准 MVC 框架(例如 UserController,...)中的样式相同。每个控制器都会创建一个 express Router object and export it. Inside the controllers, individual handlers are in charge of individual API requests, such as /api/users/list. It would use some library to access your data (e.g. Mongoose for MongoDB), and would then send the response to the client. Example (UserController.js)
- models :将包含模型及其所有属性和方法。在我的例子中,它将是 Mongoose 模型。 Example (Song.js)
- middlewares : 将包含项目的各种中间件。一个实际的例子是中间件检查传入请求中的访问令牌,如果没有则返回 403 HTTP 错误。 Example (AuthMiddleware.js)
- 帮手 : 各种帮手
- tests : 单元测试 API
这可能是最小的目录组织。最重要的是,您可能希望使用模板引擎(如 EJS)来提供网页服务。看看« Use EJS to template your node application ».
这只是为了让您大致了解快速目录结构的外观,但当然还有很多(更好的?)其他可能性。希望这能给您一个快速有用的见解:)
我正在研究 node.js,这看起来确实是一个非常不错的环境。我使用过很多不同的技术和服务器,主要是 php 和 Java (jsp),但也涉足 som RoR 和 Python.
我发现 node.js 非常容易上手,运行 使用起来感觉很自然,而且我找到了一些很好的入门级教程。
我只是缺少一些中间资源。例如,在创建更大的框架或 api 时,您将如何构建或构建它。我设置了一些较小的 api 来尝试它会像这样的地方:
我已经使用 Express 框架 创建了一个 http 服务器,监听了一个端口,设置了一个 express 对象并绑定了一些请求。
但是这些都非常小,目的是学习,如果我考虑扩大 API 的规模用于生产,也许还想做其他事情,比如服务网页.我发现很难看出架构的外观。
这很模糊,因为我对 node.js 还是个新手,但我主要考虑的事情是,如果您通常将所有 api 保存在一个文件中,或者是否有好的方法将其拆分进入模块?如果有人知道在 node.js
工作时更多地谈论如何设计架构的任何资源抱歉问题含糊不清,感谢阅读。
在我看来,如果您想构建复杂的或大型的 API,Express 是不错的选择。
除其他外,它还易于测试(例如使用 Mocha 或 Jasmine)和可定制,这尤其要归功于它的 middlewares。
对于目录结构,我通常使用的是(至少)如下:
- app.js :主入口点。将创建 express 应用程序,指示每个路由前缀使用哪个控制器,并分配中间件。 Example from a previous project
- controllers :将包含控制器,将处理请求的功能,与标准 MVC 框架(例如 UserController,...)中的样式相同。每个控制器都会创建一个 express Router object and export it. Inside the controllers, individual handlers are in charge of individual API requests, such as /api/users/list. It would use some library to access your data (e.g. Mongoose for MongoDB), and would then send the response to the client. Example (UserController.js)
- models :将包含模型及其所有属性和方法。在我的例子中,它将是 Mongoose 模型。 Example (Song.js)
- middlewares : 将包含项目的各种中间件。一个实际的例子是中间件检查传入请求中的访问令牌,如果没有则返回 403 HTTP 错误。 Example (AuthMiddleware.js)
- 帮手 : 各种帮手
- tests : 单元测试 API
这可能是最小的目录组织。最重要的是,您可能希望使用模板引擎(如 EJS)来提供网页服务。看看« Use EJS to template your node application ».
这只是为了让您大致了解快速目录结构的外观,但当然还有很多(更好的?)其他可能性。希望这能给您一个快速有用的见解:)