javascripthtmlnode.jsroutes

Node URL gets "undefined" added to URL path


I have a site that exists on a dev, staging and production server. On the dev and staging server the functionality is 100% fine, however on the production server the strangest thing happens - "undefined" gets added to the URL path.

Here is the short example of what is happening:

In the index.html I have an anchor tag to logout of a session with passport: <a href="auth/logout">Logout</a>.

It goes to this route on my node server:

// passport oauth logout
routes.get('/auth/logout', (req, res) => {
  req.session.destroy((e) => {
    req.logout();
    res.redirect(config.redirects.env.prod);
  });
});

On dev and staging this destroys the session and redirects you to /. On production, when you click the button it takes you to this URL randomly https://somesite.com/auth/undefined.

Any ideas on how to debug this? It is making no sense to me and there's nothing I'm finding serverside or in the markup that would cause this, especially since it is functional on dev and staging. All servers are Ubuntu servers set up exactly the same way.


Solution

  • I was able to resolve this. Oddly enough, 400 lines down in a completely unrelated route used for file uploads, I had a line of code that referenced config.redirects.env.production instead of config.redirects.env.prod. I wasn't even looking at that route because it wasn't even part of functionality i was testing at the moment and I saw no errors spit out (again, since the route wasnt being referenced/used yet).

    Fixing that typo resolved this bizarre issue of "undefined" being inserted into the URL. Still not sure how it managed to bubble up like that.