【问题标题】:Node.js: Calling one exported function from another in the same moduleNode.js:从同一模块中的另一个调用一个导出函数
【发布时间】:2012-08-23 12:15:28
【问题描述】:

我正在编写一个导出两个函数的 node.js 模块,我想从另一个函数调用一个函数,但我看到一个未定义的引用错误。

有没有一种模式可以做到这一点?我只是制作一个私有函数并包装它吗?

下面是一些示例代码:

(function() {
    "use strict";

    module.exports = function (params) {
        return {
            funcA: function() {
                console.log('funcA');
            },
            funcB: function() {
                funcA(); // ReferenceError: funcA is not defined
            }
        }
    }
}());

【问题讨论】:

    标签: node.js module


    【解决方案1】:

    我喜欢这种方式:

    (function() {
        "use strict";
    
        module.exports = function (params) {
            var methods = {};
    
            methods.funcA = function() {
                console.log('funcA');
            };
    
            methods.funcB = function() {
                methods.funcA();
            };
    
            return methods;
        };
    }());
    

    【讨论】:

    • 我使用var _public = {};var _privat = {}; 并返回_public,这增加了一些可读性。
    • 顺便说一句,“use strict”在这里做什么?
    • @d11wtq "use strict" 是 ECMA Script 5 的一个新标志,它有助于捕获一些错误。更多stackoverflow.com/questions/1335851/…
    • 有很多方法可以做到,但我喜欢这个:它是可读的,允许在同一个文件中导出和引用方法,并且具有清晰的封装。不过出于调试目的,我个人为我的函数命名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2020-05-18
    相关资源
    最近更新 更多