首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重定向对象与res.redirect在Next.js中的区别

重定向对象与res.redirect在Next.js中的区别
EN

Stack Overflow用户
提问于 2022-05-03 19:26:27
回答 1查看 136关注 0票数 1

Next.js的区别是什么?

代码语言:javascript
运行
复制
return {
  redirect: {
    permanent: false,
    destination: ''
  }
};

代码语言:javascript
运行
复制
res.redirect()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-04 22:23:57

一般来说,他们达到相同的目标,但在不同的情况下使用。

#1在redirect中使用getServerSideProps对象

redirect返回getServerSideProps对象本质上是一种从函数内部重定向到另一条路径的更为惯用和有效的方法。来自文档

redirect对象允许重定向到内部和外部资源。它应该与{ destination: string, permanent: boolean }的形状相匹配。在一些罕见的情况下,您可能需要为旧的HTTP客户端分配一个自定义状态代码,以便正确地重定向。在这些情况下,您可以使用statusCode属性而不是permanent属性,但不能同时使用两者。

它最终(大致)在内部执行以下代码:

代码语言:javascript
运行
复制
res.statusCode = 307
res.setHeader('Location', '/')
res.end()

在第一个代码块中,由于307值的关系,将使用状态代码permanent: false执行重定向。

#2在API路由中使用res.redirect()

在Next.js中,可以在API路由中使用res.redirect()方法重定向到指定的路径。来自文档

res.redirect([status,] path) -重定向到指定的路径或URL。status必须是有效的HTTP状态码。如果没有指定,status默认为"307“”临时重定向“。

在向其传递状态代码和路径的情况下,可以使用以下方法:

代码语言:javascript
运行
复制
res.redirect(307, '/')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72104532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档