Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用NodeJS构建一个使用API的单页应用程序_Javascript_Ajax_Node.js_Architecture_Routes - Fatal编程技术网

Javascript 如何使用NodeJS构建一个使用API的单页应用程序

Javascript 如何使用NodeJS构建一个使用API的单页应用程序,javascript,ajax,node.js,architecture,routes,Javascript,Ajax,Node.js,Architecture,Routes,我需要构建一个单页JavaScript web应用程序,定期从几个公共API和一些私有API中提取数据,并在不同的表中显示和刷新数据。我可以使用jQuery将其完全构建为前端代码,并且只使用AJAX调用,但是为了保持API的密钥和所有内容的私有性,我需要检索API数据的逻辑,以便在后端代码中(在同一台服务器上)使用 我刚开始构建这种应用程序,不知道如何使用NodeJS实现这一点。在搜索和阅读了一些教程之后,到目前为止,我唯一能理解的方法是使用index.html来显示包含空表的视图,然后在set

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

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

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


我在概念上遗漏了什么?我是否需要使用master Express布局并对div/表使用partials,并且让节点后端以这种方式处理前端?或者我应该坚持在Express之外构建.html和.js,或者使用Angular之类的东西来创建更直观的前端?我不确定这两种情况是如何组合在一起的,我只是在摸索一种更好的方法。

以社区维基答案的形式发布,因为这在评论中得到了回答:


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


此外,一旦您了解angular绑定的工作原理,就再也不想编写jQuery html()append()或任何DOM操作函数了


我会用一个有角度的应用程序来处理这个问题。正如您所说的,您将拥有一个构建在NodeJ(一组获取数据并返回JSON的已定义路由)上的API,然后是前端angular应用程序。正确,应用程序的每个设置间隔都会调用API中定义的端点,然后根据JSON响应更新$scope变量。您的HTML实际上会自动实时更新(因为angular就是这样处理绑定模型和模板/部分的)。我会研究角度-听起来是一个完美的解决方案!此外,一旦您了解angular的绑定是如何工作的,您就再也不想编写jQuery html()append()或任何那些DOM操作函数了。我想我是在尝试,但很高兴知道我走的是正确的道路。我将探索有角度的路径。谢谢你的评论。我得说,我对最近宣布的2.0版将要进行的更改不太感兴趣。也许我会保持相同的架构,但请看一个可比较的框架。或者继续使用jQuery进行AJAX调用,并使用库将绑定的数据放入HTML模板。@Alex,我已将您的建议从评论中发布到社区Wiki的答案中。