NodeJS module.exports结构说明

时间:2017-01-07 06:40:36

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

我目前正在使用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;

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

任何信息,“最佳实践”或反馈都将非常受欢迎!

1 个答案:

答案 0 :(得分:0)

它来自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)