【发布时间】:2021-03-14 21:02:18
【问题描述】:
我的印象是,您可以导入 api 请求处理程序并直接在 getStaticProps 函数内部调用它们,因为文档中说:
注意:您不应该使用 fetch() 在您的应用程序中调用 API 路由。相反,直接导入 API 路由并自己调用它的函数。您可能需要针对这种方法稍微重构您的代码。
我在/api/user/[id].js 有一个 api 路由,实现看起来像这样:
export default function user(req, res) {
const userId = req.query.id;
const user = getUserById(userId);
res.json(user);
}
如果我想在前端另一个页面的getStaticProps 中使用此处理程序,例如/admin/user/[id].js,我将如何将id 查询传递给请求处理程序?不带任何参数调用它不起作用,并抛出一个错误,指出 req.query.id 未定义。
import userHandler from "../../api/user/[id].js";
export async getStaticProps(){
// This is where the api handler is getting called
const user = await userHandler();
return { props: { user } }
}
【问题讨论】:
标签: javascript node.js next.js