我正在尝试从 Next.JS 中的
getServerSideProps
函数中的条带获取一些用户数据,以便我可以将其传递给其他一些组件,但我很难从 getServerSideProps
函数中获取数据。
以下是我的
getServerSideProps
功能:
export const getServerSideProps = withPageAuthRequired({
async getServerSideProps(context) {
const user = getSession(context.req, context.res).user
const resources = await table.select({}).all()
const customer = await fetch(`/api/customers`).then(res => res.json()).then(data => {
data.data.find(user_data => user_data.metadata['auth0_user_id'] === user.sub);})
const subscriber_status = await customer.metadata['subscription_status'] === 'true';
return {
props: {
tech_resources: minifyRecords(resources),
subscriber_stats: subscriber_status, // I want to return the subscriber status so that I can pass it to another component later on
}
}
}
});
下面是我原来的
fetch
请求,如果我将其用作独立函数或与 useEffect 挂钩一起使用,它会获取我正在查找的数据。
fetch(`/api/customers`).then(res => res.json()).then(data => {
const customer = data.data.find(user_data => user_data.metadata['auth0_user_id'] === user.sub);
if (customer.metadata['subscription_status'] === 'true') {
// Do Something;}}
但是,当我在
getServerSideProps
内部尝试时,它似乎不起作用。谁能帮我解决这个问题吗?
等待获取然后使用承诺对我来说看起来很奇怪。 当你使用await时,你的结果将是响应。
所以也许可以尝试一下
const response = await fetch(`/api/customers`);
const data = await response.json();
道具:{ tech_resources:minifyRecords(资源), subscriber_stats:JSON.parse(JSON.stringify(subscriber_status)), }