这是导出的嵌套模块的一种情况:
// exports module makes the functions public such that they can be accessed in other modules in Node.js.
module.exports.fun_tutorial = function()
{
console.log("First print from Tutorial.js")
}
// `require` is the way to include other modules in
var obj_baseTutorialJS = require('./Base_Tutorial.js');
module.exports.fun_extendedNodeTutorial = function()
{
console.log("Second print from Extended_NodeTutorial.js")
this.ss = function fun_nested()
{
console.log("sadasdsa")
var fun_nested = obj_baseTutorialJS
fun_nested.fun_tutorial();
}
}
var obj_extendedNodeTutorial = require('./Extended_NodeTutorial.js');
console.log(obj_extendedNodeTutorial)
obj_extendedNodeTutorial.fun_extendedNodeTutorial();
obj_extendedNodeTutorial.fun_extendedNodeTutorial.fun_nested();
node app.js
:{ fun_extendedNodeTutorial: [Function] }
Second print from Extended_NodeTutorial.js
/home/***/Documents/home_notes/MEAN/app.js:7
obj_extendedNodeTutorial.fun_extendedNodeTutorial.fun_nested();
^
TypeError: obj_extendedNodeTutorial.fun_extendedNodeTutorial.fun_nested is not a function
at Object.<anonymous> (/home/***/Documents/home_notes/MEAN/app.js:7:51)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3
我不知道您要达到什么目的,但是有多种方法可以解决此问题。
BaseTutorial.js
module.exports.fun_tutorial = function()
{
console.log("First print from Tutorial.js")
}
Extended_NodeTutorial.js
var obj_baseTutorialJS = require('./Base_Tutorial.js');
module.exports.fun_extendedNodeTutorial = function()
{
console.log("Second print from Extended_NodeTutorial.js");
return fun_nested()
{
console.log("sadasdsa");
const fun_tutorial = obj_baseTutorialJS.fun_tutorial;
fun_tutorial();
}
}
app.js
var obj_extendedNodeTutorial = require('./Extended_NodeTutorial.js');
console.log(obj_extendedNodeTutorial)
const fun_nested = obj_extendedNodeTutorial.fun_extendedNodeTutorial();
fun_nested(); // adasdsa
Extended_NodeTutorial.js
。我看到您正在尝试使用this.ss
。要达到类似的目的,您必须使用new
关键字。BaseTutorial.js
module.exports.fun_tutorial = function()
{
console.log("First print from Tutorial.js")
}
Extended_NodeTutorial.js
var obj_baseTutorialJS = require('./Base_Tutorial.js');
module.exports.fun_extendedNodeTutorial = function()
{
console.log("Second print from Extended_NodeTutorial.js")
this.fun_nested = function()
{
console.log("sadasdsa");
const fun_nested = obj_baseTutorialJS.fun_tutorial;
fun_tutorial();
}
}
app.js
var obj_extendedNodeTutorial = require('./Extended_NodeTutorial.js');
console.log(obj_extendedNodeTutorial)
const fun_extendedNodeTutorial = new obj_extendedNodeTutorial.fun_extendedNodeTutorial(); // Second print from Extended_NodeTutorial.js
fun_extendedNodeTutorial.fun_nested(); // sadasdsa
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句