在 getStaticProps 函数中序列化 Next.js 时出错?
Posted
技术标签:
【中文标题】在 getStaticProps 函数中序列化 Next.js 时出错?【英文标题】:Error serializing Next.js in getStaticProps function? 【发布时间】:2021-06-19 22:25:55 【问题描述】:我正在使用getStaticProps()
函数,但我无缘无故地收到此错误:
错误:序列化从
getStaticProps
返回的.posts[0]
时出错 “/”。原因:object
("[object Object]") 无法序列化为 JSON。请仅返回 JSON 可序列化数据类型。
我也在使用 mongoDb 数据库,connectDb()
函数运行mongoose.connect()
函数并连接到数据库。另外,console.log()
s 返回有效的 JSON 格式数据,我不知道是什么导致了这个问题,这是我的代码:
export const getStaticProps: GetStaticProps = async (
context: GetStaticPropsContext
) =>
await connectDb()
const count = await PostModel.countDocuments()
const posts = await PostModel.find()
console.log(posts)
console.log(count)
return
props: posts: posts, count: count ,
revalidate: 10,
【问题讨论】:
【参考方案1】:使用lean 它将转换为纯 javascript 对象。
const posts = await PostModel.find().lean();
或者你可以通过.toJSON尝试序列化
【讨论】:
以上是关于在 getStaticProps 函数中序列化 Next.js 时出错?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我会收到“错误:序列化从 getStaticProps 返回的 ___ 时出错”?
错误:如何从 getStaticProps 序列化数据:Next.js
如何干净地处理 nextjs getStaticProps 中的错误
如何从 getstaticprops 函数中的 Context API 获取数据?