Javascript 不使用ajax在angularjs和express/node之间传递数据

Javascript 不使用ajax在angularjs和express/node之间传递数据,javascript,node.js,angularjs,express,Javascript,Node.js,Angularjs,Express,我有一个AngularJS应用程序在node/express后端运行。我正在使用passport进行用户身份验证 当用户登录或注册时,我的angular控制器通过$httpajax/xhr调用与express通信。表单数据被发送,node/express/passport处理数据,并返回带有用户信息(即用户名)的json数据 Angular然后使用用户信息更新我的模板,即{{user.username} 问题是,如果用户刷新整个页面,Angular将丢失此用户信息。他们仍然登录-req.user

我有一个AngularJS应用程序在node/express后端运行。我正在使用passport进行用户身份验证

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

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

问题是,如果用户刷新整个页面,Angular将丢失此用户信息。他们仍然登录-
req.user
仍然包含他们的信息-但angular不知道

我希望避免仅仅为了检查用户是否登录而调用ajax。这将是一个额外的http调用每一个新的访问


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

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

我更喜欢 只需检查下面给出的示例,在文本字段中输入您想要的任何内容,然后刷新浏览器并查看

因为一个
AngularJS
模块使得Web存储以角度的方式工作。包含两项服务:
$localStorage
$sessionStorage

与其他实现的差异

  • 没有Getter'n'Setter胡说八道-就在AngularJS主页上:“与其他框架不同,没有必要[…]用accessors方法包装模型。这里只需要简单的旧JavaScript。”现在,您可以在通过Web存储实现数据持久性的同时享受同样的好处

  • 会话存储-我们已经涵盖了这一经常被忽略的问题

  • 编写清晰的代码——以有角度的方式编写,结构良好,考虑到可测试性

  • 没有Cookie回退-由于AngularJS官方支持的所有浏览器都可以使用Web存储,这种回退在很大程度上是多余的


为什么不将用户信息放在工厂/服务中???然后,每次浏览器刷新都会保留未保存的数据。cookie答案似乎是一个不错的选择,因为它甚至可以在重新加载时工作。@helion3您可以选择,只需检查我的答案。我发现的一个大问题是,如果服务器由于任何原因丢失会话,客户端都不知道。本地存储运行良好,但我仍然需要找到一种方法,让服务器“告诉”客户端会话存在且有效。一些嵌入式js/json甚至隐藏的输入似乎是最好的选择。