模块的Node.js约定需要variables名称
几乎所有我在互联网上看到的Node.js代码都使用这个约定来要求模块,其中require
的返回值被赋给一个与模块同名的variables:
var path = require('path'); var url = require('url');
麻烦的是,许多模块名称是我们想要在代码中的其他地方使用variables名称的相当常见的词语,例如var path = path.join(basePath, fileName)
– 这可能会由于名称遮蔽而导致问题。
当然,我们可以为模块variablesselect一个不同的名称来避免名称冲突(例如pathModule
或者大写Path
),但是这似乎违反了惯例。 或者我们可以在代码的其他地方为variablesselect不同的名称,例如var thePath = path.join(...)
。 在这种情况下最常见的是什么?
将模块名称保持原样:这是在Node.js中通过使用variablesbla
来引用bla
模块的恕我直言的惯例。
相反,当涉及到具体的用法时,我build议对variables名更具体一些,例如:
var path = path.join(basePath, fileName);
你不这样做只是为了好玩,你为特定的原因做这个特定的文件。 例如,你想加载一个configuration文件。 然后将该variables重命名为configurationPath
或类似的东西:
var configurationPath = path.join(basePath, fileName);
有一个可变的刚刚命名的path
是相当……好吧,它并没有告诉你很多的故事。 相反, path
模块实际上是关于path
的,因此可以这样命名它。
希望这可以帮助。
PS:很可能,即使configurationPath
是一个坏名字,但这完全取决于你的情况,你的意图是什么。 我只是用它作为例子,不要从字面上理解。
- MEAN堆栈如何处理login和redirect
- 这个怎么用? 在Express中使用可选的第一个参数(err,req,res,next)或者(req,res,next)
- 自动redirectlogin用户nodejs passport.js
- 延迟socket.io响应,并且“警告 – websocket连接无效”
- 将mongoose模型包含在node.js文件中包含的单个js中?
- knexjs承诺释放池连接
- 如何在没有Node服务器的情况下运行AngularJS2应用程序
- 如何使用express,sequelize,mocha和supertests进行回滚unit testing
- 为什么node-npm在安装@ angular / cli时失败,校验和失败?