Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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/1/angularjs/22.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
Node.js Angular JS-Express-将数据从一个控制器传递到另一个控制器-安全性和最佳实践_Node.js_Angularjs_Express - Fatal编程技术网

Node.js Angular JS-Express-将数据从一个控制器传递到另一个控制器-安全性和最佳实践

Node.js Angular JS-Express-将数据从一个控制器传递到另一个控制器-安全性和最佳实践,node.js,angularjs,express,Node.js,Angularjs,Express,我不熟悉Angular和Node.js,所以这个问题可能很基本。我在angular express项目中使用了seed at,如果您查看controllers文件:,几乎所有视图都是使用$location.url或$location.path加载的,据我所知,这相当于window.location js调用(没有作为调用一部分传递的数据) 假设我得到了一个从API返回的JSON对象,我想将该信息传递到下一个页面(控制器),服务是最好的方式吗?对我来说,这听起来很不自然,因为这只是我希望在对象中传

我不熟悉Angular和Node.js,所以这个问题可能很基本。我在angular express项目中使用了seed at,如果您查看controllers文件:,几乎所有视图都是使用$location.url或$location.path加载的,据我所知,这相当于window.location js调用(没有作为调用一部分传递的数据)

假设我得到了一个从API返回的JSON对象,我想将该信息传递到下一个页面(控制器),服务是最好的方式吗?对我来说,这听起来很不自然,因为这只是我希望在对象中传递的瞬态数据,而不是服务。有人能帮我介绍一下这里的最佳实践吗


另外,如果所有这些呈现都在客户端进行,我如何保护我的应用程序?例如,如果我有一个仅向具有特殊权限的用户显示的管理视图,那么如果所有逻辑都在客户端,我如何防止有人呈现该视图?我知道可以在服务器端阻止这些操作,但是完全阻止这样的事情怎么样?

您可能还想查看路由解析,它允许您将承诺的结果注入控制器,并确保在加载页面/控制器之前承诺解析,我知道在ASP.Net MVC这样的框架中,我们可以通过在视图控制器上添加authorize属性来保护视图。在express中也应该有类似的内容。为了安全起见,请看一下这个。请看这个。谢谢你的详细回答Jon。我一定要试一试。关于数据共享部分的任何指导都很有趣,但我不确定如何在我的环境中使用它们。我知道如何使页面负载取决于不同服务的数据可用性,但是如何从另一个控制器获取必要的数据呢?您能帮助展开吗?更清楚地说,您是说我必须定义一个服务,它存储来自控制器1的状态,并且该状态变量或方法应该被引用为第二个控制器的路由解析,以便我访问该变量?虽然听起来可行,但这不是太复杂了吗?我们是否有一个传统的“数据传输对象”,或者这是Angular的DTO?确切地说,基本上,建立一个工厂,返回包含您的数据的承诺,使用该工厂作为两个/所有控制器的解决方案。所有解决方案是,当注入控制器时,返回承诺将自动展开。它不像听起来那么复杂,而且这种方法确实可以/应该用于所有远程资源,因为它将减少代码重复,并允许您构建与这些资源交互的公共API。如何将同一实例传递给两个控制器?我认为服务每次都会返回一个新实例,虽然我需要第一个控制器使用这个实例来避免用户之间的数据混淆,但我希望第二个控制器使用完全相同的服务实例。我怎样才能做到这一点?使用工厂,因此,您始终可以轻松访问原始资源和它的漂亮API。工厂将始终返回对象的相同实例。