节点URL获取"未定义"已添加到网址路径

时间:2018-01-12 18:37:56

标签: javascript html node.js routes

我在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服务器。

1 个答案:

答案 0 :(得分:0)

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

修复拼写错误解决了这个奇怪的问题&#34; undefined&#34;被插入到URL中。仍然不确定它是如何成功地冒出来的。