在尚未部署的 Nextjs 构建过程中调用 API 函数(在 `getStaticProps` 中)
Call an API function during the Nextjs build process (in `getStaticProps`) that hasn't been deployed yet
我的项目,部署到 Vercel
Nextjs 站点,/pages/api/foo.ts
在 /pages/index.tsx
内部,我进行了以下调用:
const api = {
async monthly(symbol) {
const res = await fetch(`${server}/api/stocks?symbol=${symbol}`);
const json = await res.json();
return json;
},
};
export async function getStaticProps() {
const initial = await api.monthly(stock)
return {
props: {
initial,
},
revalidate: 60,
};
}
要在上面的 fetch
调用中获取 server
值,我有这个配置文件:
const dev = process.env.NODE_ENV !== "production";
export const server = dev
? "http://localhost:3000"
: "https://fooproduction.com";
我的确切问题是:当我尝试构建(和部署)这个站点时,它无法生成静态,因为 getStaticProps
调用的 API 函数不还存在于生产环境中(因为 NODE_ENV=production
在构建过程中)
我是不是在构建、部署和调用 API 函数的 Vercel Nextjs™ 方法中做错了什么?
在 getStaticProps
和 return 中添加一个 try catch 错误的空属性。您的页面将在运行时生成
我的项目,部署到 Vercel
Nextjs 站点,/pages/api/foo.ts
在 /pages/index.tsx
内部,我进行了以下调用:
const api = {
async monthly(symbol) {
const res = await fetch(`${server}/api/stocks?symbol=${symbol}`);
const json = await res.json();
return json;
},
};
export async function getStaticProps() {
const initial = await api.monthly(stock)
return {
props: {
initial,
},
revalidate: 60,
};
}
要在上面的 fetch
调用中获取 server
值,我有这个配置文件:
const dev = process.env.NODE_ENV !== "production";
export const server = dev
? "http://localhost:3000"
: "https://fooproduction.com";
我的确切问题是:当我尝试构建(和部署)这个站点时,它无法生成静态,因为 getStaticProps
调用的 API 函数不还存在于生产环境中(因为 NODE_ENV=production
在构建过程中)
我是不是在构建、部署和调用 API 函数的 Vercel Nextjs™ 方法中做错了什么?
在 getStaticProps
和 return 中添加一个 try catch 错误的空属性。您的页面将在运行时生成