在我寫的Ruby程序中,我'需要'在'入口點'文件頂部需要的所有文件和模塊。例如:Node.js:如何使模塊可用於多個文件?
#Sets an absolute path for wherever the program is run from
#this_file = __FILE__
#BASEDIR = File.expand_path(File.join(this_file, '..'))
this_file = __FILE__
this_file_folder_nav = File.join(this_file, '..')
BASEDIR = File.expand_path(this_file_folder_nav)
#Required Gems
require 'ap'
require 'docx'
require 'sanitize'
etc
#Required files
require_relative "lib/commodity/stories.rb"
require_relative 'lib/worldgrowth/worldgrowth.rb'
require_relative "lib/prices/prices.rb"
require_relative 'lib/prices/prices_module.rb'
etc
I can access all the classes defined in the files above. And I can access classes defined in the 'stories.rb' in pirces_module.rb. All the required gems are accessible in all the files
問:這是一個好的做法嗎?這對我來說似乎很方便,我想在node.js中做同樣的事情。
但是,我發現我不得不在所有將使用該模塊的文件上編寫var module = require('someModule')
。如果我有一個node.js應用程序的入口點文件,是否可以做類似於我在Ruby中做的事情?
您不應該將模塊附加到全局對象。這破壞了測試能力和封裝,因此強烈不合適。 –
@BrandonSmith我明白了......你將如何着手解決在不同文件中提供模塊的問題?我認爲嘗試做他正在嘗試做的事可能是不好的做法。 –
顯而易見的解決方案是處理不便,並在需要的地方添加需求。一個更清潔的替代方案是創建一個公用事業模塊,導出您經常需要的物品。然後,您可以用一個需求來包含您的實用程序。最後,像Electrolyte這樣的依賴注入器使得需要重複相同的模塊少一點痛苦。 –