javascript - 无法使用 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
解决方案
moreMessage
extendedModule
在;的主体内声明 它不是extendedModule
正在导出的函数的属性,因此无法以您尝试的方式访问。
直接导出moreMessage
,或者在函数体之外定义它,extendedModule
然后将其附加到extendedModule
:
extendedModule.moreMessage = function () { /* ... */ };
推荐阅读
- r-markdown - 如何使用 Markdown 使图像居中?
- java - 在模块描述符中是否有订购要求的约定?
- javascript - /*#__PURE__*/ 在一些javascript源代码中是什么意思?
- java - 创建、写入和读取同一个文件返回一个 0 数组
- azure - 部署/托管的 asp.net 核心中的 WebAssembly launchSettings.json 文件
- svelte - 如何在 SvelteKit 中以编程方式路由?
- javascript - 基于浏览器的脏克隆(创建一个新的脚本元素,然后根据 function/class.toString() 更新其 .text)是否存在安全风险?
- reactjs - 反应数据表值重复
- rest - 如果用户无权访问某些请求的资源,那么使用标识符作为查询参数的 GET 调用的 REST 响应应该是什么?
- linux - 在预定时间段内重启 Shell 函数