await headers()
函数。 我的设置的简化版本:file结构:
Src/app/page.tsx
"use server"
import { getIP } from "./_util/getIP";
export default async function Home() {
const ip = await getIP();
return (
<h1>TEST IP {ip}</h1>
);
}
src/app/_util/getip.ts
"use server"
import { headers } from "next/headers";
export async function getIP() {
const requestHeaders = await headers(); // this line generate the error
const remoteIP = requestHeaders.get("x-forwarded-for")?.split(":").pop() || "unknown";
return remoteIP;
}
这里可用的存储库以供参考:githubrepo
我尝试过的事物在Headers()上使用等待的等待,以测试它是否与异步处理有关
有人在生产模式下遇到了与headers()的类似问题?任何见解都将不胜感激!
“无法读取未定义的属性(读取'绑定')” 在您的生产中,因为应该提供的功能 请求标题没有像在Vercel上的那样绑定。
如果您希望在类似生产的环境中在本地测试您的应用程序,则可以考虑以下方法:
使用自定义服务器:使用Node.js和Express实现自定义服务器可以提供对服务器环境的更多控制,从而可以更好地模拟生产上下文。
修改编译的代码:npm run build
npm run start
append
delete
,
get
has
,
set
,
getSetCookie
,,
forEach
keys
,
values
和entries
符号之类的方法。这是您如何调整返回函数的一个示例:
iterator