【问题标题】:NodeJS module.exports structure explanationNodeJS module.exports 结构解释
【发布时间】:2017-05-21 23:32:03
【问题描述】:

我目前正在使用 NodeJS 作为项目的服务器端,并为我的内部帮助函数创建了一个“模块”。

以下是我当前如何设置“帮助”文件的示例。

# Structure 1
var express = require('express');
var helpers = {
  isNullOrEmpty: function(s)
   {
      return s == "" || s == null || s.length == 0;
   },
   formatDate: function(s)
   {
       var dateArr = s.split('/');
       if (dateArr.length == 3)
       {
          return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2];
       }
       else
       {
          return null;
       }
   }
}

module.exports = helpers;

正如您在上面看到的,它的设置“对象”就像,并且在项目中一切正常,并且没有任何问题,但是当我看到人们创建自己的模块的示例时,他们使用如下结构。

# Structure 2
var express = require('express');

function helpers(){};

helpers.protoype.isNullOrEmpty = function(s){
  return s == "" || s == null || s.length == 0;
}

helpers.prototype.formatDate = function(s){
    var dateArr = s.split('/');
    if (dateArr.length == 3){
      return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2];
    }
    else {
      return null;
    }
  }
}

module.exports = helpers;

是否有正确或错误的方法来设置这些文件的结构?格式化这些模块有什么优点/缺点吗?

任何信息、“最佳实践”或反馈将不胜感激!

【问题讨论】:

    标签: javascript node.js function object server-side


    【解决方案1】:

    它来自javascript中oop的基本含义,在这种情况下它是因为 当您使用 object.prototype 时,您可以定义从父对象继承的其他对象,并且所有函数都可以在子对象中用于继承 js,您可以像这样使用:

    function helpers(){};
    
    helpers.protoype.isNullOrEmpty = function(s){
       return s == "" || s == null || s.length == 0;
     }
    
    helpers.prototype.formatDate = function(s){
       var dateArr = s.split('/');
       if (dateArr.length == 3){
         return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2];
     }
       else {
      return null;
    }
    }
    }
    var secondObject=new Object()
    secondObject.prototype=Object.create(helpers.prototype)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2020-08-31
    相关资源
    最近更新 更多