Node.js Core -Best Javascript Runtime

Node.js 是非常优秀的 Javascript Runtime,NodejsCore介绍 Node.js 框架、应用程序和服务器端的开发问题

Learn more

为什么我的req.user在加载时始终为空?

我已经挣扎了好几天,取得了一些很好的进展,但是我不能让我的课程工作得很好。 我已经成功地使用Passport来与Facebook进行身份validation。 当我用FBbutton点击我的login时,会话完全加载,我有我的req.user对象都准备好去,但在我看来,我应该只需要做一次。 我知道护照保存了一个cookie。 我已经看了看,看到工作。 我试图检测用户是否已经login在我的索引页的负载,但是当我加载页面的req.user对象始终为空,我的passport.deserializeUser方法永远不会被调用来加载它(如果我点击login到FBbutton它确实被调用)。 所以我的问题是,你如何告诉护照页面加载检查cookie和加载用户会话,如果有的话? 更新 – 好的,所以对于那些稍后发现这个问题的人,我只想回顾一下我在这里学到的东西(感谢那些评论过的人)。 希望这会帮助其他人。 我习惯了不pipe服务器如何生存的.NET cookies。 Node.js和护照不在同一个前提下工作。 默认情况下,node.js使用内存来保持会话。 当您closuresterminal/命令行中的节点(每次更改服务器代码时都必须执行此操作)时,内存存储cookie信息将被重置,因此任何与其关联的cookie都是无意义的。 为了解决这个问题,我安装了Redis( http://cook.coredump.me/post/18886668039/brew-install-redis ),并把它作为我的商店( http://www.hacksparrow.com/use-redisstore-而不是memorystore-express-js-in-production.html )。 这将在Azure上工作,这是我计划的生产服务器,因此一切正常。 好的,这是一些代码。 我不确定放什么部分… 这是server.js /** * Module dependencies. */ var express = require('express') , app = express() , partials = require('express-partials') , http = require('http') , server = http.createServer(app) , io = require('socket.io').listen(server) , […]