在没有Ajax的情况下在angularjs和express / node之间传递数据

我有一个AngularJS应用程序运行在节点/快递后端。 我正在使用护照进行用户validation。

当用户login或注册时,我的angular度控制器通过$http ajax / xhr调用与express进行通信。 表单数据被发送,node / express / passport处理数据,并且用户的信息(即用户名)返回json数据。

Angular然后使用用户信息来更新我的模板,即{{user.username}}

问题是,如果用户刷新整个页面,Angular会丢失这个用户信息。 他们仍然login – req.user仍然包含他们的信息 – 但angular度不知道它。

我想避免ajax调用只是为了检查用户是否login。这将是一个额外的http调用每一个新的访问…

我可以直接将用户数据传递给玉模板,但以后不能更新。

我更喜欢ngStorage

只要检查下面给出的示例,在文本字段中input任何你想要的东西,然后刷新浏览器并查看

工作演示预览

的jsfiddle

由于AngularJS模块使Web存储工作在Angular方式。 包含两个服务: $localStorage$sessionStorage

与其他实现的差异

  • 没有Getter'n'Setter胡说 – 从AngularJS的主页:“不像其他的框架,没有必要在访问器方法中包装模型,这里只是简单的旧JavaScript。 现在,您可以享受同样的好处,同时通过Web存储实现数据持久性。

  • sessionStorage – 我们得到了这个经常被忽视的伙伴。

  • 干净编写的代码 – 以angular度书写,结构良好,考虑到可testing性。

  • 没有Cookie后备 – 随着Web存储在AngularJS正式支持的所有浏览器中都可用,这种后备在很大程度上是多余的。

我认为解决你的问题最简单的方法是使用ngCookies 。