Ash*_*ota 20 axios next.js next-auth
我正在尝试使用 prisma 客户端从 mongodb atlas 检索用户的数据,我编写此代码用于获取数据,它显示错误,这里 prisma 客户端代码写入作为 prisma 导入的 prismadb 文件中
import { NextApiRequest, NextApiResponse } from "next";
import prisma from "./prismadb";
import { getServerSession } from "next-auth";
const serverAuth = async (req: NextApiRequest, res: NextApiResponse) => {
try {
const session = await getServerSession(req);
if (!session?.user?.email) {
throw new Error('Not signed in');
}
const currentUser = await prisma.user.findUnique({
where: {
email: session.user.email,
}
});
if (!currentUser) {
throw new Error('Not signed in');
}
return { currentUser };
} catch (error:any) {
// res.status(500).json({ error: `&{err.message}` });
res.status(500).json({ error: error.message });
return;
}
};
export default serverAuth;
Run Code Online (Sandbox Code Playgroud)
我已经尝试并捕获并显示了此错误。我在聊天 GPT 中询问过,它表明这可能是由于 next.js 和 next-auth 之间的一些错误造成的,并且该问题的官方 GitHub 帐户已关闭,但我不明白任何事情
以下是参考链接:
并在下一个身份验证 https://github.com/nextauthjs/next-auth/issues/6989
nin*_*sau 18
如果您在使用 next13 时遇到此错误,请确保您所在的文件getServerSession实际上是服务器文件。包含"use server"在页面顶部。
getServerSession必须在服务器组件中调用。
在此线程中找到了解决方案
import { createServerComponentClient } from "@supabase/auth-helpers-nextjs";
import { Database } from "@/lib/types/schema";
import { cookies } from 'next/headers'
import { cache } from 'react';
export const createServerClient = cache(() => {
const cookieStore = cookies()
return createServerComponentClient<Database>({
cookies: () => cookieStore
})
})
export async function GET() {
const supabase = createServerClient()
const { data, error } = await supabase.from('').select('')
return data
}
Run Code Online (Sandbox Code Playgroud)
让我知道这是否适合您。
| 归档时间: |
|
| 查看次数: |
31226 次 |
| 最近记录: |