大佬教程收集整理的这篇文章主要介绍了在node.js中需要构建库的最佳做法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有点困惑,因为有几种方法可以做到,我不知道什么是最好的/更合适/更可靠的。这里有2个选项,但我想知道他们是否是最好的(例如,我看到使用module.exports = exports = function(){}等的片段)
//option1.js
"use Strict"; module.exports = function(){ exports.test1 = function(){ console.log('hi I'm test1')}; exports.test2 = function(){ console.log('hi I'm test2')}; return exports; };
//option2.js
"use Strict"; module.exports = { test1 : function(){ console.log('soy test1')},test2 : function(){ console.log('soy test2')} };
//test_controller.js
/* requiring Helpers in different ways */ var option1 = require('./option1.js')(); var option2 = require('./option2.js');
第1节:CommonJS依赖关系
var lib1 = require("lib1"); var lib2 = require("lib2");
您不需要任何附加的包装器功能。所有节点模块都是automatically wrapped通过node.js在一个功能中,这样做没有任何好处,只是增加了混乱
第2节:纯JavaScript代码
var MY_CONST = 42; function Helper1() { //excellent code here } function Helper2() { //excellent code here }
保留第2节纯JS。在这个中间的“纯”部分不要使用COR_400_11845@monJS成语。不要使用模块,导出,要求等。这只是我的个人指南,因为JS本身是稳定的,但是封装到模块中仍然有很大的变化,最好保持CommonJS位是无关紧要的,并且可能会改变与有趣的代码分开。 ECMAScript 6模块在几年内最有可能取代CommonJS,所以通过保持第2部分纯的ECMAScript 5,并按照我喜欢称之为“CommonJS Sandwich™”,使自己更容易。
第3节:CommonJS出口
exports.Helper1 = Helper1; exports.Helper2 = Helper2;
>将所有导出结束放在最后还可以快速了解您的公共API是什么,并防止由于粗心复制/粘贴而导致的意外导出属性。
>我更喜欢以上exports.foo = foo;而不是将module.exports分配给一个新的对象文字。我发现这避免了一个对象文字的最后一个属性的逗号后缀。
>用你的需求或出口报表做任何事情几乎肯定是不必要的,不必要的光滑或魔术。直到你进步,不要在这里做任何事情。 (即使如此,如果你不是TJ Holowaychuk,你可能只是愚蠢)
我应该出口什么
单一功能(@substack样式)
function degreesToradians(degrees) {} module.exports = degreesToradians;
保持小而简单。
功能的对象
如果您的模块是一组帮助函数,则应将包含这些函数的对象导出为属性
var foo = require("foo"); function doubleFoo(value) { return foo(value) * 2; } function tripleFoo(value) { return foo(value) * 3; } exports.doubleFoo = doubleFoo; exports.tripleFoo = tripleFoo;
构造函数
如果您的模块是面向对象使用的类设计,则导出构造函数
function GoCart() { this.wheels = 4; } GoCart.prototype.drive = function drive() { //vroom vroom } module.exports = GoCart;
一旦您掌握了上述2种模式(真的!),并且感到自信地输出一个可以选择的工厂功能,也可能会做一些其他动态的东西,但是如果有疑问,请坚持使用前两个更简单的选择。
//do-stuff.js function dostuff(howFast,what) { return "I am doing " + what + " at speed " + howFast; } function setup(options) { //The object returned by this will have closure access to options //for its entire lifetime return {dostuff: dostuff.bind(null,options.howFast)}; } module.exports = setup;
所以你可以这样使用
var dostuff = require("./do-stuff")({howFast: "blazing speed"}); console.log(dostuff.dostuff("jogging")); //"I am doing jogging at speed blazing speed"
以上是大佬教程为你收集整理的在node.js中需要构建库的最佳做法全部内容,希望文章能够帮你解决在node.js中需要构建库的最佳做法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。