节点 URL "undefined"添加到 URL 路径



我有一个站点存在于开发、暂存和生产服务器上。在开发和暂存服务器上,功能是100%好的,但是在生产服务器上发生了最奇怪的事情 - "未定义"被添加到URL路径中。

以下是正在发生的事情的简短示例:

在索引中.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);
  });
});

在开发和暂存时,这会破坏会话并将您重定向到 / 。在生产环境中,当您单击该按钮时,它会随机https://somesite.com/auth/undefined将您带到此 URL .

关于如何调试它的任何想法?这对我来说毫无意义,而且我在服务器端或标记中找不到任何会导致这种情况的东西,特别是因为它在开发和暂存时功能正常。所有服务器都是以完全相同的方式设置的 Ubuntu 服务器。

我能够解决这个问题。奇怪的是,在用于文件上传的完全不相关的路由中,有 400 行,我有一行代码引用了 config.redirects.env.production 而不是 config.redirects.env.prod .我什至没有看那条路线,因为它甚至不是我目前正在测试的功能的一部分,而且我没有看到任何错误(再次,因为该路线尚未被引用/使用(。

修复该拼写错误解决了将"未定义"插入URL的奇怪问题。仍然不确定它是如何像这样冒泡的。