我在dev,staging和production服务器上有一个站点。在开发和登台服务器上,功能完全正常,但是在生产服务器上发生了最奇怪的事情 - "未定义"被添加到URL路径。
以下是正在发生的事情的简短示例:
在index.html中,我有一个锚标记用于注销带有护照的会话:<a href="auth/logout">Logout</a>
。
它在我的节点服务器上转到此路由:
// passport oauth logout
routes.get('/auth/logout', (req, res) => {
req.session.destroy((e) => {
req.logout();
res.redirect(config.redirects.env.prod);
});
});
在开发和暂存时会破坏会话并将您重定向到/
。在制作时,当您单击该按钮时,它会随机将您带到此URL https://somesite.com/auth/undefined
。
有关如何调试此问题的任何想法?这对我来说毫无意义,而且我找不到服务器端或标记会导致这种情况,特别是因为它在开发和暂存时起作用。所有服务器都是以完全相同的方式设置的Ubuntu服务器。
答案 0 :(得分:0)
我能够解决这个问题。奇怪的是,在用于文件上传的完全不相关的路线中有400行,我有一行引用config.redirects.env.production
而不是config.redirects.env.prod
的代码。我甚至没有看到那条路线,因为它现在甚至不是我正在测试的功能的一部分,我看到没有错误吐出(再次,因为路线还没有被引用/使用)。
修复拼写错误解决了这个奇怪的问题&#34; undefined&#34;被插入到URL中。仍然不确定它是如何成功地冒出来的。