好吧,把我的头撞在墙上。我刚刚从everyauth 切换到passportjs,一切都很好,除了我实现的Valums 文件上传器。
您可以在https://gist.github.com/4066155看到我的文件上传器代码的要点
我的快递 app.configure 如下所示:
app.configure( function () {
app.use(express.methodOverride());
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set('view options', {
layout: false
});
app.use(passport.initialize());
app.use(passport.session());
});
奇怪的是,如果我注释掉 app.use(passport.session()); - 文件上传器似乎工作正常。passport.initialize 可以保留,因为它不会引起任何问题。
如果我在代码中保留 use passport.session,则上传调用会通过,它实际上确实在我的 tmp 目录中创建了一个临时文件,但它保持为零字节。服务器从不响应 Web 客户端(无回调),并且文件实际上从未由 fs 写入。
即使是指向正确方向的指针也可能非常有帮助。如果您需要更多上下文,请告诉我。谢谢。
更新:
如果有帮助,我对 req 变量进行了比较,以查看未调用 passport.session 与调用 passport.session 时的区别。第一个差异是未调用的 passport.session,第二个是被调用的。URL:http ://diffchecker.com/Xk8g434Q - 第 469 行很有趣,它显示了正在绑定的事件,然后在第二个文本块中,事件只是 {}(空)。