gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:31 25 4
gpt4 key购买 nike

如果我想在应用程序启动时实例化 Express 服务器,然后在另一个类中引用实例化服务器的一些属性,那么什么是“好”方法?似乎单例服务器实例可以工作,但在 JS/node 中感觉不对。

例如:

# 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 定义单例的最佳方法是创建一个可在整个代码中使用的变量。

这是我编写的示例程序:

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 的新实例创建了一个变量。然后我可以在我的任何类中使用 testHandler ,它将始终链接到该特定类。

关于node.js - Node.js 中单例/可重用服务器对象的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26857387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com