我现在正在使用 Node.js,并且喜欢我如何使用我的前端知识来创建服务器端应用程序。然而,我喜欢 PHP 的一点是你可以只发布或执行/打开一个文件,它由服务器自动运行。我不喜欢 PHP 的一点是它的语法和速度——我想将 Node.js 和 Javascript 用于我所有的服务器端功能(例如计费脚本或注册脚本)。
那么...有没有一种方法可以像使用 PHP 脚本一样运行 Node.js 应用程序,我的意思是无需创建一个持续运行的服务器,并且不必在终端中为每个应用程序运行“node app.js”脚本?就像......有什么我可以写的 nginx 东西来完成这项工作吗?我也不想在 Node.js 服务器上运行整个站点。
如果我无法避免在 Node.js 应用程序中使用“new”关键字,如何有效地将对象标记为垃圾回收?我使用相当高级的构造函数创建一个新对象(我的意思是new myObj()实际上在该过程中更深入地创建了几个new Something()对象。
假设我的构造函数看起来有点像下面这样:
function User(name, age) {
this.something = x;
this.greet = function() { return "hello"; };
this.somethingElse = new OtherThing();
return this;
}
Run Code Online (Sandbox Code Playgroud)
User然后我在另一个函数中创建一个新函数:
function createUserAndGreet(name, age) {
var user1 = new User(name, age);
user1.greet();
// now I don't need user1 anymore
}
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我知道这段代码很糟糕,但我认为它表达了我的观点)
让他打招呼后,我该如何摆脱他,释放他占用的内存呢?
因此,如果我在处理完 user1 之后将其设置为 null user1 = null;,他会永远消失吗?GC 会来清理他吗?这也会删除new OtherThing()创建的吗?或者还有什么我需要做的吗?我听说 usingnew因内存泄漏而臭名昭著,所以我只想知道是否有解决方法。