无法使用 node.js 中的应用程序从扩展模块调用基本模块

Unable to call a base module from an extended module using Application in node.js

您好,我正在尝试使用中间的扩展模块从应用程序文件调用基本模块。

基本模块:Basemodule.js

var exports = module.exports = {};
exports.baseModmessage1=function()
{
console.log('Module1:base Module: Message 1')
}
exports.baseModmessage2=function()
{
console.log('Module1:base module: Message 2')    
}

扩展模块:Extendedmodule.js

var baseModule = require ('./Basemodule.js');

exports.extendedModule = function()
{
    console.log ("This came from extended module function");

    function moreMessage()
    {
        var baseMessage = baseModule
        baseMessage.baseModmessage1();
    }
}

申请:app.js

var mainCall = require('./Extendedmodule.js');

mainCall.extendedModule();

mainCall.extendedModule.moreMessage();

所有文件都在同一个本地文件夹中。我能够获得扩展模块消息,但在调用基本模块时似乎出现问题。

C:\wks\guru99\L2_extendingmodules>node app.js

This came from extended module function

C:\wks\guru99\L2_extendingmodules\app.js:5
mainCall.extendedModule.moreMessage();
                        ^

TypeError: mainCall.extendedModule.moreMessage is not a function
    at Object.<anonymous> (C:\wks\guru99\L2_extendingmodules\app.js:5:25)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

moreMessageextendedModule 的主体内声明;它不是正在导出的 extendedModule 函数的 属性,因此无法以您尝试的方式访问。

要么直接导出 moreMessage,要么在 extendedModule 函数的主体之外定义它,然后将其附加到 extendedModule:

extendedModule.moreMessage = function () { /* ... */ };