Javascript 使用ES6类的猫鼬模型
这是我见过的猫鼬模型的一个例子。Javascript 使用ES6类的猫鼬模型,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,这是我见过的猫鼬模型的一个例子。this.model在将模型导出为单例时(如export default new Messages())似乎会导致大量内存泄漏 我进一步优化,只导出上面主代码中的类,并在需要时实例化。看起来还是导致了大量内存泄漏 关于我在这里所做的事情以及我应该如何改进这一点的任何输入?您如何确定内存泄漏?我可以查看内存不足的错误日志,并使用memwatch next,在每次创建messages实例时生成堆转储,将messages方案注册为模型。在类var Message=mon
this.model
在将模型导出为单例时(如export default new Messages())似乎会导致大量内存泄漏
我进一步优化,只导出上面主代码中的类,并在需要时实例化。看起来还是导致了大量内存泄漏
关于我在这里所做的事情以及我应该如何改进这一点的任何输入?您如何确定内存泄漏?我可以查看内存不足的错误日志,并使用memwatch next
,在每次创建messages实例时生成堆转储,将messages方案注册为模型。在类var Message=mongoose.model('messages',modelSchema)之外尝试;然后,构造函数写入此值。模型=Message@vijay我之所以在构造函数中这样做,是因为我希望在实例化类并使用它之后,GC能够清理模型引用。
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
let modelSchema = new Schema({createdAt: {type: Number}}, { strict: false});
modelSchema.pre('save', function(next) {
this.createdAt = new Date().getTime() - 30000;
next();
});
class Messages {
constructor() {
this.model = mongoose.model('messages', modelSchema, 'messages');
}
getAllMessages(params, cb) {
// .... some code
// .... uses this.model.find()
};
insertMessage(params, cb) {
// .... some code
let newMessage = new this.model(newObj);
// uses newMessage.save()
}
}
export default Messages;