301 přesměrování s Express

Pokud jste vytvořili web pomocí Node.js, je velká šance, že jste použili rámec Express. Express se proměnil v obrovský projekt a má to dobrý důvod: je nabitý užitečnými funkcemi, snadným rozhraním API a masivní podporou komunity. Jeden z mých nedávných projektů používal Express a líbilo se mi to!

Jeden problém, který jsem nedávno potřeboval vyřešit, bylo vytvoření přesměrování 301 ze staré pracovní domény do nové produkční domény. Zde je návod, jak můžete vytvořit přesměrování 301 pomocí Express:

app.use(function forceLiveDomain(req, res, next) {
  // Don't allow user to hit Heroku now that we have a domain
  var host = req.get('Host');
  if (host === 'serviceworker-cookbook.herokuapp.com') {
    return res.redirect(301, 'https://serviceworke.rs/' + req.originalUrl);
  }
  return next();
});

Překvapivě je kód přesměrování prvním argumentem pro redirect místo adresy URL. Je důležité zavolat next() na konci funkce nebo neshoda způsobí, že se vaše aplikace zasekne!