next.js 如何从应用程序路由器页面访问请求/响应?

kmbjn2e3  于 2023-08-04  发布在  其他
关注(0)|答案(2)|浏览(159)

在页面路由器中,您可以创建一个getStaticProps函数,然后将props馈送到组件函数中。getStaticProps依次获得请求和响应对象的参数,因此您可以从它们向页面传递所需的任何信息。
在应用程序路由器中,不再有getStaticProps函数:你只需要从组件函数中获取数据。然而,组件函数 * 没有 * 得到请求/响应的传递,所以现在似乎不可能访问它们。
在最新版本的Next.js中,是否有其他机制来访问请求/响应对象?

yebdmbv4

yebdmbv41#

根据jonrsharpe的评论,看起来不再有一种方法可以从页面访问请求。
您可以使用API路由(它确实会获得完整的请求),或者您可以使用headerscookies函数(来自next/headers包)来访问请求的这些部分。但是似乎不可能从请求中获得任何其他信息,或者获得请求对象本身。

zzzyeukh

zzzyeukh2#

如果需要访问请求和响应对象,则应使用服务器端呈现方法,如getServerSideProps。但是,getServerSideProps_app.js级别不可用,因为它被设计为处理单个页面。
要在应用级别访问请求/响应对象或执行服务器端逻辑,您可以考虑在pages/api目录中创建一个API路由,在该目录中可以直接访问reqres对象:

export default function handler(req, res) {
  // You have access to the request and response objects here
}

字符串
这是唯一想到的事情,否则你可能需要重新思考你的方法。

相关问题