在 Next.js 中获取数据
2020-06-26
8282
You should not fetch an API route from getStaticProps — instead, you can write the server-side code directly in getStaticProps.
上面的句子来自 next.js 的官方文档,我觉得很困惑。
是不是说我不应该对我的 restful api 进行 ajax 请求?(我正在使用 node express 应用程序作为后端)。
我是 next.js 的新手,之前我使用 react node 应用程序和 mongodb 作为数据库。我使用 moongose 包进行数据库相关查询。
如果我不应该进行 ajax 请求,那么我应该如何处理数据获取相关的事情?我可以直接在前端使用 moongose 吗?
//the way i want to do
getStaticProps(){
//here i want to get data from database about posts
//fetch('some end point of my restful api'){...}
}
//the way i think official docs is telling me to do
getStaticProps(){
//query from database
}
1个回答
API 路由是 NextJS 的一项功能,可让您创建 API - 这需要本地服务器启动并监听。
https://nextjs.org/docs/api-routes/introduction
getStaticProps
在构建时获取,意味着无需用户请求。它允许
NextJS
生成 SSR 页面而无需用户请求,API 路由此时不可用,因为服务器尚未启动。
在您的示例中
//here i want to get data from database about posts
//fetch('some end point of my restful api'){...}
// 1.Write your data from database
// 2. Instead of `fetch` - Write logic of your restful api if
its internal or the external endpoint that doesn't
need the instantiation of your server.
希望区别是有意义的,您可以进行
fetch
调用,只是它们不应该是您的服务器本身正在创建的东西。可以将其视为构建时获取调用。
Ramakay
2020-06-27