簡體   English   中英

Node.js單獨的模塊依賴性

[英]Node.js separate module dependencies

將所有模塊依賴項分離到一個新文件中的最佳方法是什么,該文件名為dependencies.js ,並在例如server.js要求該文件。 我如何退回所有這些要求?

var express = require('express')
  , stylus = require('stylus')
  , fs = require('fs')
  , https = require('https')
  , app = express();

您需要將它們分配給global對象,因此您根本不需要這樣做

global.express = require('express');
global.stylus = require('stylus');
global.fs = require('fs')
global.https = require('https')
global.app = global.express();

實際上,有很多理由不這樣做,但是我將其歸結為簡單。 首先,您知道在模塊中聲明變量時(例如var Foo = require('foo') ),該變量是該模塊局部作用域的一部分。 global ,另一方面是全球所有模塊。 考慮一下所有模塊為關鍵事件共享同一名稱空間的含義, 這些關鍵事件不能保證在運行時的特定時刻處於任何一種狀態(實際上,只要節點決定需要global就會重置!)。 如果您開始使用多個進程(如@Hippo提到但未解釋),則此問題可能會加劇。

我可以理解為什么一開始這似乎是個好主意,但是與隱藏在代碼中的意外失敗相比,您從這種技術中獲得的少量DRY顯得蒼白。

IMO,最好還是在每個模塊中顯式聲明您的依賴項。 在所有模塊之間共享deps列表將混淆程序的邏輯結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM