CNode

express+mongodb,两个数据模型关联的时候出错了

问答
Mmiuqiang发布于8 年前最后回复8 年前24 回复4975 浏览0 收藏

两个数据模型关联的时候出错了,不知道问题出在那里,望解答。谢谢 alt text alt text

查看回复

回复 (25)

S
samuelben#1·8 年前

user和car互相引用了

W
wangchaoduo#2·8 年前

互相引用了

H
hewentaowx#3·8 年前

贴上一部分你的代码,你不觉得有问题么 newUser: async (req, res, next) => { try { const newUser = new User(req.body); const user = await newUser.save(); res.status(201).json(user); } catch (err) { next(err); } }

C
CodeofGame#6·8 年前

我刚才把你的代码跑起来了 没出现问题啊。。。。。好尴尬

C
CodeofGame#8·8 年前

image.png 你看 没问题,所以不是上边说的循环引用的问题

M
miuqiang#9·8 年前
引用 CodeofGame你看 没问题,所以不是上边说的循环引用的问题

@CodeofGame 有问题吧,具体的car都没有存起来,按理说应该是这样的。

alt text

M
meng666666#11·8 年前

oklm

C
CodeofGame#12·8 年前

能看下request.body里的内容吗,我刚才用你这个代码,试了一下,没有报错!

M
miuqiang#13·8 年前
C
CodeofGame#15·8 年前

你把代码发我邮箱吧,houhanbin121456@163.com,我给你看看

C
CodeofGame#16·8 年前

@miuqiang image.png 你说的是这样吗,我跑起来确实没问题!!!

C
CodeofGame#17·8 年前

没有报错

C
CodeofGame#18·8 年前

你看看是不是mongoose版本的问题

M
miuqiang#19·8 年前
引用 CodeofGame你看看是不是mongoose版本的问题

@CodeofGame 你是那个版本

C
CodeofGame#20·8 年前

我的天,我总算重现这个问题了,第一次调用接口会报错,之后就不会报了!

C
CodeofGame#22·8 年前

@miuqiang 我再检查检查啊

C
CodeofGame#23·8 年前

解决了

 user.cars.push(newCar.toObject());

这里需要把Document转换成js的普通对象再push,应该就可以了

M
miuqiang#24·8 年前
引用 CodeofGame解决了 这里需要把Document转换成js的普通对象再push,应该就可以了

@CodeofGame 恩,果然是那样,不过我还是没理解到。 我typeof了下 console.log('typeof newCar', typeof newCar); ==>object console.log('typeof newCar.toObject', typeof (newCar.toObject()));==>object 都是object

C
CodeofGame#25·8 年前

https://github.com/Automattic/mongoose/issues/1961#event-242694964 你可以看下这个issues,目测是mongoose的一个坑 image.png

参与回复
登录后即可参与回复。登录