【问题标题】:Node URL gets "undefined" added to URL path节点 URL 被“未定义”添加到 URL 路径
【发布时间】:2018-01-12 18:37:55
【问题描述】:

我有一个站点存在于开发、登台和生产服务器上。在开发和登台服务器上,功能是 100% 正常的,但是在生产服务器上发生了最奇怪的事情——“未定义”被添加到 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 服务器。

【问题讨论】:

标签: javascript html node.js routes


【解决方案1】:

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

修复该错字解决了这个奇怪的问题,即“未定义”被插入到 URL 中。仍然不确定它是如何像那样冒泡的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多