Javascript 不断获得;超过最大调用堆栈大小;使用猫鼬
我正在尝试添加好友的功能。这个代码段处理它Javascript 不断获得;超过最大调用堆栈大小;使用猫鼬,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我正在尝试添加好友的功能。这个代码段处理它 Router.route("/confirm_friend").post(function(req, res) { UserSchema.findOne({ _id: req.body.self }).then( (self) => { UserSchema.findOne({ _id: req.body.whom }).then( (whom) => { self.friends
Router.route("/confirm_friend").post(function(req, res) {
UserSchema.findOne({ _id: req.body.self }).then(
(self) => {
UserSchema.findOne({ _id: req.body.whom }).then(
(whom) => {
self.friends.push(whom)
whom.friends.push(self);
self.requests.splice(self.requests.indexOf(whom), 1);
self.save();
whom.save();
res.send("success");
},
(err) => {
res.send(err);
console.log("--- err", err);
},
);
},
(err) => {
console.log("--- err", err);
},
);
});
如您所知,我正在通过POST接收两个ID。我在模式中查找它们,然后将彼此推送到好友列表。在此之后,我执行.save()
和res.send(“成功”)代码>
一切似乎都很好,但我一直在这样做:
/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:249
函数cloneObject(对象,选项){
^
RangeError:超出了最大调用堆栈大小
在cloneObject(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:249:21)
克隆时(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:183:16)
在cloneObject(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:257:11)
克隆时(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:183:16)
在cloneObject(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:257:11)
克隆时(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:183:16)
在cloneObject(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:257:11)
克隆时(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:183:16)
在cloneObject(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:257:11)
克隆时(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:183:16)
在cloneObject(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:257:11)
克隆时(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:183:16)
在cloneObject(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:257:11)
克隆时(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:183:16)
在cloneObject(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:257:11)
克隆时(/Users/shchypylov/Documents/projects/personal/social/node_modules/mongoose/lib/utils.js:183:16)
[nodemon]应用程序崩溃-正在等待文件更改,然后再启动
我如何解决它?通常这个符号循环引用问题(一个对象引用另一个对象,反之亦然)…如果我猜,它会导致self.friends.push(谁)
和who.friends.push(自我)
。这是循环引用。@bigless hm..那么我将如何实现向彼此列表中添加好友?我不熟悉任何sql数据库,但我认为它应该通过对象id引用,这是一个可搜索的问题