两个数据模型关联的时候出错了,不知道问题出在那里,望解答。谢谢
user和car互相引用了
互相引用了
能看下request.body里的内容吗,我刚才用你这个代码,试了一下,没有报错!
@CodeofGame { “make”: “BMW”, “model”: “X6”, “year”: “2018” }
@CodeofGame 我把代码贴上去了,你看下呢 https://github.com/miuqiang/express
你把代码发我邮箱吧,houhanbin121456@163.com,我给你看看
贴上一部分你的代码,你不觉得有问题么 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); } }
@CodeofGame 能跑起来么
@hewentaowx 哪里?
我刚才把你的代码跑起来了 没出现问题啊。。。。。好尴尬
你看 没问题,所以不是上边说的循环引用的问题
@CodeofGame 有问题吧,具体的car都没有存起来,按理说应该是这样的。
@miuqiang 你说的是这样吗,我跑起来确实没问题!!!
没有报错
你看看是不是mongoose版本的问题
@CodeofGame 你是那个版本
我的天,我总算重现这个问题了,第一次调用接口会报错,之后就不会报了!
@CodeofGame 终于看到bug了
@miuqiang 我再检查检查啊
解决了
user.cars.push(newCar.toObject());
这里需要把Document转换成js的普通对象再push,应该就可以了
@CodeofGame 恩,果然是那样,不过我还是没理解到。 我typeof了下 console.log(‘typeof newCar’, typeof newCar); ==>object console.log(‘typeof newCar.toObject’, typeof (newCar.toObject()));==>object 都是object
https://github.com/Automattic/mongoose/issues/1961#event-242694964 你可以看下这个issues,目测是mongoose的一个坑
@CodeofGame 谢谢 ^-^
oklm