【问题标题】:How to architect a single page, API-consuming app using NodeJS如何使用 NodeJS 构建单页面、使用 API 的应用程序
【发布时间】:2014-12-27 08:32:12
【问题描述】:

我需要构建一个单页 JavaScript Web 应用程序,它会定期从几个公共 API 和可能的一些私有 API 中提取数据,并在不同的表中呈现和刷新数据。我可以使用 jQuery 将其纯粹构建为前端代码,并且只使用 AJAX 调用,但是为了保持 API 的密钥和所有内容私有,我需要检索 API 数据的逻辑以存在于后端代码中(在同一台服务器上) .

我是构建这种应用程序的新手,想知道如何使用 NodeJS 实现这一点。在搜索并查看了一些教程之后,到目前为止,我唯一可以绕过它的方法是拥有一个 index.html 来显示带有空表的视图,然后在 setInterval 上,让一个本地 JavaScript 函数执行 AJAX 调用到处理所有 API 内容并在响应中返回 JSON 对象的 NodeJS (Express) 路由。成功后,本地 JavaScript 可以将结果写入各种表格/div 的 html。

对我来说这听起来不错,但由于所有这些都必须存在于同一台服务器上,因此让前端脚本通过 URL/路由手动调用同一台服务器似乎真的很奇怪。

我在概念上缺少什么?我是否需要使用主 Express 布局并为 div/表使用部分,并让 Node 后端以这种方式处理前端?或者我应该坚持在 Express 之外构建 .html 和 .js 并使用 Angular 之类的东西来创建更直观的前端部分?我不确定如何将这两种情况组合在一起,我只是在寻找更好的方法。

【问题讨论】:

  • 我解决这个问题的方法是使用 Angular 应用程序。正如您所说,您将拥有一个基于 nodeJS 的 API(一堆已定义的获取数据并返回 JSON 的路由),然后是您的前端 Angular 应用程序。正确,您的应用程序将调用您在 API 中定义的端点的每个设置间隔,然后根据 JSON 响应更新 $scope 变量。您的 HTML 实际上会自动实时更新(因为这就是 Angular 与绑定模型和模板/部分的工作方式)。我会研究 angular - 听起来像是一个完美的解决方案!
  • 另外,一旦你了解了 Angular 的绑定是如何工作的,你就再也不想编写 jQuery html() append() 或任何那些 DOM 操作函数了。
  • 我以为我在试探,但很高兴知道我在正确的轨道上。我将探索 Angular 路径。感谢您的评论。
  • 哎呀。我得说,最近宣布的 Angular 2.0 将带来的变化让我有点不高兴。也许我会保持相同的架构,但看看一个可比较的框架。或者可能坚持使用 jQuery 进行 AJAX 调用并使用库将绑定的数据放入 HTML 模板中。

标签: javascript ajax node.js architecture routes


【解决方案1】:

发布为社区 Wiki 答案,因为这在 cmets 中得到了回答:

我会使用 Angular 应用程序来解决这个问题。正如您所说,您将拥有一个基于 nodeJS 的 API(一组获取数据并返回 JSON 的已定义路由),然后是您的前端 Angular 应用程序。正确,您的应用程序将调用您在 API 中定义的端点的每个设置间隔,然后根据 JSON 响应更新 $scope 变量。您的 HTML 实际上会自动实时更新(因为这就是 Angular 与绑定模型和模板/部分一起工作的方式)。我会研究 angular - 听起来像是一个完美的解决方案!

另外,一旦你了解了 Angular 的绑定是如何工作的,你就再也不想编写 jQuery html() append() 或任何那些 DOM 操作函数了。

【讨论】:

猜你喜欢
  • 2012-06-06
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2016-03-21
  • 2011-06-12
相关资源
最近更新 更多