繁体   English   中英

Node.js 模块插件

[英]Node.js Module plugins

我希望找出编写 Node.js 模块的最佳实践,特别是针对代码分离所遵循的 javascript 模式类型。

我一直在使用的一种风格是:

var Something;

Something = (function() {

    function Something() {
    }

    Something.prototype.some = function() {

    }

    return Something;

})();

module.exports = Something;

另一种风格是:

module.exports = {
 item: "one",
 some: function() {

 },
 another: function() {

 }
}

在 node.js 中,是否有任何理由不建议使用第二种方法? 或者是否有另一种更受欢迎的格式,其优势是什么?

谢谢!

您会遇到使用“this”关键字的问题。 您必须使用它而不是“某物”。 所以Something.some() 你可以运行...但是如果你想在底部运行它,你必须运行this.run()。 此范围在其他功能中发生变化并且可能会变得混乱。

有几种变体,包括将属性直接分配给exports ,将新的对象文字分配给module.exports和其他一些。 在大多数情况下,它们只是语法糖或语法替代品,可以完成完全相同的事情。 我个人的偏好是尽可能多地保留未受污染的纯 JS 代码,并将 CommonJS 习惯用法分开。 所以我这样做:

function myFunction() {

}

var MY_STRING = "Forty-two";


module.exports = {
    myFunction: myFunction,
    MY_STRING: MY_STRING
};

它有点样板化并且容易出现维护错误,但我更喜欢它而不是替代方案,因为我真的不喜欢将 CommonJS 模块级别名称(模块、导出)散布在我的代码中。 CoffeeScript 使最后一部分变得更容易,因为您可以这样做:

module.exports = {
    myFunction
    MY_STRING
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM