Node.js中的单例/可重用服务器对象的最佳方法

如果我想在应用程序启动时实例化一个Express服务器,并且稍后引用另一个类中的一些实例化服务器的属性,那么这是一个“好”的方法吗? 看起来像一个单身服务器实例可以工作,但这只是在JS /节点感觉错误。

例如:

# app.coffee server = new Server() # server.coffee Http = require 'http' express = require 'express' class Server foos: null constructor: -> @app = express() Http.createServer(@app).listen('1337', 'localhost', cb) cb: -> @foos = ['foo', 'bar'] # another_class.coffee Server = require './server' class AnotherClass constructor: -> # how do I access and do something with the instantiated server object in app.coffee 

为coffeescript定义单例的最好方法是在整个代码中创build一个可用的variables。

这是我写的一个示例程序:

 class TestHandler constuctor: (@elementHandler) -> testList: [] addTest: (test) -> @testList.push test getTestList: -> @testList getTestForName: (name) -> for e in @getTestList() when e.getName() is name return e updateTestName: (name, newName) -> @getTestForName(name).name = newName class Test constructor: (name) -> @name = name getName: -> @name testHandler = new TestHandler() testHandler.addTest new Test 'hi' 

正如你所看到的,在class范围之外的不同的底部,我用TestHandler一个新实例创build一个variables。 然后,我可以在我的任何一个类中使用testHandler ,它将始终链接到特定的类。