Javascript 在nextjs中生成静态API路由
我想通过API公开文件中的数据(JSON)。我知道构建时的数据,但我不知道如何创建静态API路由,甚至不知道如何静态地通过API路由公开文件 我在谷歌上搜索了两种解决方案:Javascript 在nextjs中生成静态API路由,javascript,next.js,Javascript,Next.js,我想通过API公开文件中的数据(JSON)。我知道构建时的数据,但我不知道如何创建静态API路由,甚至不知道如何静态地通过API路由公开文件 我在谷歌上搜索了两种解决方案: 创建一个返回JSON文件的静态页面(找不到解决方案,它总是返回HTML) 使用pages/api/[something]生成api(但它似乎总是动态的) 我最后的办法是尝试通过/pages/api/[something].js上的函数访问该文件,但这是动态的,而不是静态的 默认情况下位于/pages/api/hello.
- 创建一个返回JSON文件的静态页面(找不到解决方案,它总是返回HTML)
- 使用pages/api/[something]生成api(但它似乎总是动态的)
导出默认值(请求、恢复)=>{
res.statusCode=200;
res.json({name:“johndoe”});
};
这里的典型策略是什么?我觉得我遗漏了一些东西。FWIW,这是我发现的动态生成API的动态方式:
//在文件/pages/api/[article].js上
从“../../lib/api”导入{getArticle};
导出默认值(请求、恢复)=>{
//它从文件中获取文章,也可以与getStaticProps一起使用
const article=getPost({article:req.article});
res.statusCode=200;
//返回JSON。
res.json(第条);
}
我仍然希望它是静态的,不需要运行任何无服务器函数。FWIW,这是我发现的动态生成API的动态方式:
//在文件/pages/api/[article].js上
从“../../lib/api”导入{getArticle};
导出默认值(请求、恢复)=>{
//它从文件中获取文章,也可以与getStaticProps一起使用
const article=getPost({article:req.article});
res.statusCode=200;
//返回JSON。
res.json(第条);
}
我仍然希望它是静态的,不需要运行任何无服务器的函数。
使用页面/api/[something]来生成api(但它似乎总是动态的)。
不,它不是动态的。从[something].js
中,如果导出getStaticPath(这将为您生成静态路由)和getStaticProps(这将注入从相应路由提供的数据),下一次构建将生成静态文件,并准备用作包含原始json数据的api页面
希望这就是您试图解决的问题。使用页面/api/[something]生成api(但它似乎总是动态的)。
不,它不是动态的。从[something].js
中,如果导出getStaticPath(这将为您生成静态路由)和getStaticProps(这将注入从相应路由提供的数据),下一次构建将生成静态文件,并准备用作包含原始json数据的api页面
希望这就是您试图解决的问题。您是否尝试将data.json
放在public/api
文件夹中?从技术上讲,它不是api
,但它应该提供/api/data.json
路由上的静态文件。我可以直接访问标记文件,但这些文件不进行灰质处理。我可能太挑剔了。啊,我记得这个选项的问题:我需要在文件中检查标题以生成slug。您是否尝试过将data.json
放在public/api
文件夹中?从技术上讲,它不是api
,但它应该提供/api/data.json
路由上的静态文件。我可以直接访问标记文件,但这些文件不进行灰质处理。我可能太挑剔了。啊,我记得这个选项的问题:我需要检查文件内部的标题来生成slug。