模块的Node.js约定需要变量名

时间:2014-11-18 20:59:11

标签: node.js

我在互联网上看到的所有Node.js代码都使用这种约定来要求模块,其中require的返回值被赋值给一个与模块同名的变量:

var path = require('path');
var url = require('url');

麻烦的是,许多模块名称是我们希望用于代码中其他地方的变量名称的相当常见的单词 - 例如。 var path = path.join(basePath, fileName) - 这可能会因名称阴影而导致问题。

当然,我们可以为模块变量选择一个不同的名称,以避免名称冲突(例如pathModule或大写Path),但这似乎打破了惯例。或者我们可以为代码中的其他地方选择不同的名称 - 例如。 var thePath = path.join(...)。在这种情况下最常见的是什么?

1 个答案:

答案 0 :(得分:2)

保留模块名称:Node.js中的IMHO常见做法是使用变量bla引用bla模块。

相反,我建议在具体用法方面更具体地使用变量名称,例如:

var path = path.join(basePath, fileName);

您不是为了好玩而这样做,而是出于特定原因对特定文件执行此操作。例如,您要加载配置文件。然后将变量重命名为configurationPath或类似的内容:

var configurationPath = path.join(basePath, fileName);

拥有一个名为path的变量非常......好吧,它并没有告诉你很多故事。相反,path模块实际上约为path s,所以可以这样命名。

希望这有帮助。

PS:最有可能的是,即使configurationPath也是一个坏名字,但这完全取决于你的情况以及你的意图。我只是用它作为一个例子,不要从字面上理解它。