骨干模型服务器端和内存处理

时间:2015-04-08 21:32:19

标签: javascript node.js backbone.js express

如果我在服务器上有一个骨干模型(node.js)并在每条路径上插入数据(使用Express),那么该模型会无限增长吗?当模型执行了它应该执行的操作时,我应该手动清除内存吗?

伪示例:

var model = require('./model')

route.index = function() {
    var key = new Date()
    model.set(key, 'foobar')
    console.dir(model.toJSON())
}

在浏览器中每次重新加载时,此模型都会增长。我的问题是:我是否需要手动清空模型,或者是否有垃圾收集器"在将负责此事的节点中?

1 个答案:

答案 0 :(得分:0)

Node中有一个垃圾收集器,但它不会清理这个模型,因为它总是在你的代码中被引用。

一旦你通过破坏模型,或者在它的位置保存一个新变量,或偶尔清空它的属性,节点就能够清理它。

if ( _.keys(model.attributes).length > 1000 ) {
    model.attributes = _.result(model, 'defaults') || {}; // reset the model to it's default values
    // or model = new Backbone.Model();
}

但这似乎是一件不安全的事情,因为这个模型可以在其他地方使用。