javascript - 导出对象与函数 NodeJs

标签 javascript node.js function object

导出对象 {} 与导出函数

我正在开发一个练习应用程序,我遇到了这个问题我什么时候需要导出对象 {} 而不是函数类?

场景示例:

我正在使用对象样式构建一个简单的身份验证模块

// file auth.js
module.exports = {

    login: function() {
       // code login
    },

    logout: function() {
      // code logout
    },

    register: function() {
      // code register
    }
}

这里我使用的是匿名函数风格

module.exports = function() {

        return {
            login: function() {
               // code login
            },

            logout: function() {
              // code logout
            },

            register: function() {
              // code register
            }
         }
    }

要求

当我想需要这个模块时,我只是这样做:

var auth = require('auth');

auth.login(); // trigger login function via object
auth().login() // trigger login function via function

这两种方法都适用,但我不知道选择哪种更适合以及为什么。

问题

  • 在设计模块时,您如何理解何时适合导出、对象匿名函数命名函数来实例化?

  • require 方法在需要这些函数对象 时有何区别?

最佳答案

How do you understand in your design of a module, when is appropriate to exports, an object, anonymous function, named function to Instantiate?

  • 真正的极简主义者旨在导出单个功能(如果这就足够的话)。这基于您的模块的范围,并假设有一个小而集中的目的。
  • 当您需要一组函数以具有一组有意义的功能时,导出相关函数的对象。例如,tempConversion 模块可能同时具有 cToFfToC 函数。
  • 如果你在做面向对象的,导出构造函数就可以了。
  • 返回实际负载(可以是对象或函数)的闭包函数对于配置选项很有用。例如,var tip = require('computeTip')(18); 可以将 18 存储在闭包中并返回一个函数,该函数在使用数字调用时会计算 18% 的小费。

这里有一个经验法则:如果您只导出一个命名函数,如 require('average').average(listOfNumbers),它是多余的,所以只需导出直接使用average 函数使其更加简洁。如果您要公开多个函数,请使用一个属性为函数的对象。

Which are the difference and how the require method behave, when requiring these functions or Objects ?

  • 没有区别。 require 有一个单一的行为来适应这些技术中的每一个。

关于javascript - 导出对象与函数 NodeJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27581246/

相关文章:

javascript - 是否可以通过超链接打开 Windows 控制面板?

javascript - 向图像添加 onclick 或按钮

javascript - 从 AngularJS 发布到 Amazon S3 时出错

node.js - 如何在mongoDB中存储100个 parent 中的数百万个 child

c - 在c中的字符串左侧添加空格

c++ - 函数、数组和指针

php - 如何在 codeigniter 中的不同页面上显示多个 View

javascript - 使用 Owl Carousel 将 slider 的滚动设置为仅 4 个元素?

javascript - 在NodeJS中获取Mongo数据库中插入文档的_id

python-3.x - 如何使用一个变量中定义的变量并将其用作另一个变量中的参数?