在node.js中,为什么护照会话在触发'文件'事件时停止强大?

在我的应用程序,我只使用

app.use(express.json()); app.use(express.urlencoded()); 

并不是

 app.use(express.bodyParser()); 

这样我可以手动parsingfile upload。 看来,这一行

 app.use(passport.session()); 

停止从触发文件事件强大:

 form.on('file', function(name, file) { //never called }); 

我怎样才能使用护照会议,而不是与强大的文件事件冲突?

       

网上收集的解决方案 "在node.js中,为什么护照会话在触发'文件'事件时停止强大?"

看起来他们已经添加了一种方法来解决这个问题。 使用app.use(passport.session({pauseStream: true})); 反而会阻止asynchronous反序列化破坏一些中间件。

来源: https : //github.com/jaredhanson/passport/pull/106

passport.session()方法调用你的passport.deserializeUser() ,它本身通常会进行数据库调用来获取用户。 此数据库调用会延迟开始监听传入数据的代码的执行。 也就是说,数据到达,而没有人正在听它。