next.js TypeError:无法在getStaticProps和数据提取中解析URL

8yoxcaq7  于 2023-05-06  发布在  其他
关注(0)|答案(1)|浏览(115)

我在NextJS中的getStaticProps有问题,我试图从API Route加载Maven,但我得到一个错误。

export const getStaticProps = async () => {
    const specialists = await loadSpecialists();

    return {
        props: { specialists },
    };
};
export const loadSpecialists = async () => {
    const response = await fetch('/api/specialists.js');
    const data = await response.json();

    return data;
};
if (req.method === 'GET') {
        const specialists = await database
            .collection('specialists')
            .find()
            .toArray();

        res.status(200).json({ specialists });
    }

我尝试了使用useEffect的客户端渲染,这很有效,但我需要预先渲染这个页面。

lnlaulya

lnlaulya1#

您的URL在这里

const response = await fetch('/api/specialists.js');

应该是绝对URL。你的客户端代码工作,因为浏览器可以处理相对的url
默认情况下,浏览器处理链接中的相对URL时,会将正确的方案(协议)、服务器名称和目录信息(包括连接)前置到相对URL。浏览器从链接所在页面的位置信息中获取前置信息。
当您在服务器上时,服务器无法知道来源。你要么硬编码绝对url

export const loadSpecialists = async () => {
    // or you couldnt set in env variable
    const response = await fetch(“http://localhost:3000/api/specialists.js”);
    const data = await response.json();
    return data;
};

相关问题