NextJS中GetServerSideProps内MongoDB查询投影报错求助
解决MongoDB findOne在GetServerSideProps中的类型错误
问题出在findOne的第二个参数格式不符合TypeScript的类型要求。在MongoDB的TypeScript驱动中,查询选项(包括投影字段)需要放在projection属性下,不能直接传递字段对象。
修改后的代码
const client = await clientPromise; const db = client.db("?retryWrites=true&w=majority"); const user = await db.collection("Users").findOne({email: params[0]}, { projection: { username: 1 } })
原因说明
你的API端点能正常运行,大概率是因为API代码未启用严格TypeScript类型检查,或是直接使用了JavaScript(无类型校验)。而Next.js的GetServerSideProps中,TypeScript会严格校验findOne的参数类型,要求第二个参数必须符合FindOptions<Document>类型规范,投影字段必须嵌套在projection属性内。
内容的提问来源于stack exchange,提问作者Parzival
相关产品推荐
相关产品推荐

