使用express对对象进行垃圾收集

Bas*_*aan 3 garbage-collection node.js express

我想知道是否需要删除对在 Express 路径中创建的对象的引用,或者是否会处理它。

假设以下简单情况;

class Person
{
    constructor(name, age)
    {
        this.name = name;
        this.age = age;
    }
}

app.get('/', function (req, res) {
    const person = new Person(req.params.name, req.params.age);
    res.send('Persons name is ' + person.name);
})
Run Code Online (Sandbox Code Playgroud)

对该路由进行 100 次调用后,是否会有 100 个 person 对象漂浮在周围,或者是否会被节点的垃圾收集清理掉?

Est*_*ask 5

只要对象的引用停止使用,该对象就有资格进行垃圾回收。

由于person引用没有传递到任何地方,因此变量在路由处理函数的末尾停止存在,它使用的内存将在下次垃圾收集时释放。

如果请求频繁执行,内存可能会被一堆Person实例占用,直到它们被垃圾收集。