请解释如何在 Express 中重定向请求?

推荐答案

在 Express 中,可以使用 res.redirect() 方法来重定向请求。这个方法会将客户端重定向到指定的 URL,并且可以指定状态码(可选)。

在上面的代码中,第一个路由会将请求从 /old-route 重定向到 /new-route,默认使用 302 状态码(临时重定向)。第二个路由则明确指定了 301 状态码(永久重定向)。

本题详细解读

1. res.redirect() 方法

res.redirect() 是 Express 提供的一个方法,用于将客户端重定向到另一个 URL。它可以接受一个或两个参数:

  • 第一个参数:可以是状态码(如 301、302 等),也可以是目标 URL。
  • 第二个参数:如果第一个参数是状态码,那么第二个参数就是目标 URL。

2. 状态码

  • 301 (Moved Permanently):表示请求的资源已永久移动到新的 URL。浏览器会缓存这个重定向,后续请求会直接跳转到新的 URL。
  • 302 (Found):表示请求的资源临时移动到新的 URL。浏览器不会缓存这个重定向,后续请求仍然会访问原始 URL。

3. 使用场景

  • 301 重定向:适用于永久性更改 URL 的场景,例如网站改版、域名更换等。
  • 302 重定向:适用于临时性更改 URL 的场景,例如 A/B 测试、临时维护页面等。

4. 示例代码

-- -------------------- ---- -------
-- -----
------------------------- ----- ---- -- -
  ------------------------------
---

-- -----
------------------------- ----- ---- -- -
  ----------------- -----------------
---

在这个示例中,/temp-redirect 会使用 302 状态码进行重定向,而 /perm-redirect 会使用 301 状态码进行重定向。

纠错
反馈