【发布时间】:2021-01-23 10:02:41
【问题描述】:
我有一个“套接字”模型的架构,当我尝试在猫鼬中保存任何创建的套接字对象时,它给了我一个模糊的错误 Error: cyclic dependency detected 仅标记 node_modules 而没有我的文件。架构代码如下。我保存socket对象的方式也如下。如果可能,请指出错误。
socket.js 文件
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const SocketSchema = new mongoose.Schema({
_id: Schema.Types.ObjectId,
socket_object: Schema.Types.Mixed,
socket_id: Schema.Types.Mixed,
// other model links
room_link: { type: Schema.Types.ObjectId, ref: 'Room' },
})
SocketSchema.pre('save', function(next) {
this.socket_id = this.socket_object.id;
next();
});
// SocketSchema.set('autoIndex', false);
mongoose.model('Socket', SocketSchema);
我如何保存套接字对象:
let newSocket = new Socket({
_id: new mongoose.Types.ObjectId(),
socket_object: socket,
});
console.log('-----------------NEW SOCKET---------------')
console.log(newSocket)
newSocket.save(function(err, newSocket){
if (err) {
console.log('--------------------LOG SOCKET NOT SAVED------------------------')
return console.log(err)
}
})
只要我运行上面的代码,我就会得到底部模糊的错误
错误:检测到循环依赖 在 serializeObject (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:333:34) 在serializeInto(/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:941:17) 在 serializeObject (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:347:18) 在serializeInto(/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:941:17) 在 serializeObject (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:347:18) 在serializeInto(/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:941:17) 在 serializeObject (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:347:18) 在serializeInto(/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:941:17) 在 serializeObject (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:347:18) 在serializeInto(/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:941:17) 在 serializeObject (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:347:18) 在serializeInto(/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:941:17) 在 serializeObject (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:347:18) 在serializeInto(/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:727:17) 在 serializeObject (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:347:18) 在serializeInto (/home/arsalan/Work_stuff/Full_stack_apps/NATIVE_APPS/webRTC_fresh/webRTC_fullstack/web/node_modules/bson/lib/bson/parser/serializer.js:941:17)
如果可能,请指出错误。
【问题讨论】: