userService 中创建用户信息的时候,出现异常
userService 中创建用户信息的时候,出现异常
ERROR 80601 [-/::1/-/21ms POST /api/users/createByEmail] nodejs.TypeError: this.ownerDocument is not a function
mongodb 相关包
{
"egg-mongoose": "^3.3.1",
"mongoose": "^6.1.4"
}
请老师帮忙排查一下
82
收起
正在回答 回答被采纳积分+1
3回答
张轩
2022-01-04 15:06:09
同学你好 查阅代码得知原因,你的 mongoose 单独安装了一下,是 6.1.4 的版本(其实不需要单独安装,egg-mongoose 安装的时候会安装适配的版本),而 egg-mongoose 依赖的是 5 版本的 mongoose,假如是新版本,然后加上 timestamp 选项就会报错。正如你提示的那个错误一样,
const UserSchema = new Schema<UserProps>({ username: { type: String, unique: true, required: true }, password: { type: String, required: true }, nickName: { type: String }, picture: { type: String }, email: { type: String }, phoneNumber: { type: String }, }, { timestamps: true });
如果吧 timestamps 选项删除就没有问题,所以应该是这个版本不匹配的问题。具体原因没有进行深究深层代码。
重新安装到5版本就可以了
npm install mongoose@5.13.11 --save
亲测可用。
另外代码中还有几个小错误,一并告诉你
export interface UserProps { username: string; password: string; email?: string; nickName?: string; picture?: string; phoneNumber?: string; // 这里的拼写和类型你写错了,下同 createdAt: Date; updatedAt: Date; }
controller 中
// 传参数你写错了,ctx 也需要带着 ctx.helper.success({ ctx, res: userData });
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星