node.js - deserializeUser 被客户端 requirejs 应用多次调用

标签 node.js express requirejs passport.js

我的node/express/passport应用程序工作正常,但是当我在我的jade模板中包含我的客户端requirejs应用程序(位于/public/js/文件夹内)时,如下所示:

script(src="js/vendor/requirejs/requirejs.js", data-main="js/main")

passport 多次调用 deserializeUser。

我的静态文件夹是在 main.js 中初始化 Passport 之前声明的:

app.use(express.static('public'));

app.use(passport.initialize());
app.use(passport.session());

客户端requirejs项目没有经过r.js优化,因此它必须加载所需的javascript文件。当客户端项目由 r.js 优化时,它工作得很好 - 没有额外的反序列化调用(只有 1 个)。

这是 Passport 所期望的行为吗?这不是一个大问题,因为它是在开发中这样做的,但这是一个可以解决的问题吗?

最佳答案

也许您可以将记录器中间件添加到您的应用程序(例如 morgan),并尝试通过查看 http 请求日志的序列以及与反序列化调用关联的日志,将反序列化发生与特定静态文件相关联。

关于node.js - deserializeUser 被客户端 requirejs 应用多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635163/

相关文章:

node.js - Nodemon 不听

javascript - 如何在 PugJS 的路由器中触发 onclick 功能?

javascript - 使用 require.js 在多个 JS 文件中拆分应用程序的 javascript

javascript - 未处理的 promise 拒绝警告 : error: password authentication failed for user

node.js - 有没有办法在维护数据的同时更改 mongoDB 结构(从嵌套/嵌入文档到对象引用列表)?

node.js - 有哪些开源 Node.js CI 项目?

javascript - 在 Chrome 扩展中使用 Node.js 和 Express.js

json - NodeJS JSON 应该是全局的,但它是本地的

javascript - 在 requirejs 中共享实例化对象

javascript - 调用 require( ['app' ]) 仅一次