gpt4 book ai didi

node.js - 更大的项目 Node.js 和 RESTful API

转载 作者:搜寻专家 更新时间:2023-10-31 23:47:00 24 4
gpt4 key购买 nike

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

我发现 node.js 非常容易启动和运行,使用起来感觉很自然,而且我找到了一些很好的入门级教程。

我只是缺少一些中间资源。例如,在创建更大的框架或 api 时,您将如何构建或构建它。我设置了一些较小的 api 来尝试它会像这样的地方:

我已经使用 Express 框架创建了一个 http 服务器,监听了一个端口,设置了一个 express 对象并绑定(bind)了一些请求。

但是这些都非常小,并且目的是学习,如果我考虑扩大用于生产的 API 的大小,也许还想做其他事情,比如服务网页。我发现很难看到架构的外观。

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

抱歉这个含糊的问题,感谢阅读。

最佳答案

在我看来,如果您想构建复杂或大型 API,Express 是不错的选择。

除其他外,它易于测试(例如使用 Mocha 或 Jasmine)和可定制,特别是由于其 middlewares .

对于目录结构,我通常使用的是(至少)如下:

  • app.js :主要入口点。将创建 express 应用程序,指示每个路由前缀使用哪个 Controller ,并分配中间件。 Example from a previous project
  • controllers :将包含 Controller ,即处理请求的函数,其风格与标准 MVC 框架(例如 UserController,...)相同。每个 Controller 都会创建一个 express Router对象并将其导出。在 Controller 内部,各个处理程序负责各个 API 请求,例如 /api/users/list。它会使用一些库来访问您的数据(例如,用于 MongoDB 的 Mongoose),然后将响应发送给客户端。 Example (UserController.js)
  • models :将包含模型及其所有属性和方法。在我的例子中,它将是 Mongoose 模型。 Example (Song.js)
  • middlewares :将包含项目的各种中间件。一个实际的例子是中间件检查传入请求中的访问 token ,如果没有则返回 403 HTTP 错误。 Example (AuthMiddleware.js)
  • helpers : 各种 helper
  • tests:API 的单元测试

这可能是最小的目录组织。最重要的是,您可能希望使用模板引擎(如 EJS)来提供网页服务。看看« Use EJS to template your node application » .

这只是为了让您大致了解快速目录结构的外观,但当然还有很多(更好的?)其他可能性。希望这能给你一个快速而有用的见解:)

关于node.js - 更大的项目 Node.js 和 RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36300362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com