NextAuth : 使用 NextAuth 时无法查询用户模型
Posted
技术标签:
【中文标题】NextAuth : 使用 NextAuth 时无法查询用户模型【英文标题】:NextAuth : Unable to query User model, when using NextAuth 【发布时间】:2022-01-07 06:57:15 【问题描述】:我正在为我的 Nextjs/MongoDB 应用程序使用 NextAuth。当我尝试在 Api 文件中查询用户记录时出现错误。
import Users from '../../../model/user';
let userId = query.id;
const userData = await Users.findOne(_id:userId);
console.log('userData ',userData);
我收到以下错误:
error : _model_user__WEBPACK_IMPORTED_MODULE_1__.default.findOne is not a function
【问题讨论】:
【参考方案1】:query
是什么?我认为您需要 req.query.id
,因为您在 API 请求和响应中有 req
和 res
您需要将userId
转换为ObjectId
import Users from '../../../model/user';
import ObjectId from 'bson';
...your method of handler, eg get, post, delete etc
//if you have name [id].tsx, for [pid].tsx you need req.query.pid
let userId = req.query.id;
//you need to transform only if you are searching by _id field
const userData = await Users.findOne("_id": ObjectId(userId));
if (userData.?_id)
res.status(200).json(userData)
else
res.status(500).json('User data not found')
【讨论】:
以上是关于NextAuth : 使用 NextAuth 时无法查询用户模型的主要内容,如果未能解决你的问题,请参考以下文章
如何将 api 错误返回到 NextAuth.js 中的登录组件