Nodejs - TypeError:'Y'不是函数

时间:2018-01-23 09:45:29

标签: javascript node.js node-modules

Tutorial.js

var exports = module.exports={};
exports.tutorial = function(){
    console.log("11");
}

NodeTutorial.js

var Tutor = require('./Tutorial.js');
module.exports.NodeTutorial = function(){
    console.log("22")   
    function func_pTutor(){
        var PTutor = Tutor;
        PTutor.tutorial();
    }
}

app.js

var localTutor = require('./NodeTutorial.js');
localTutor.NodeTutorial();
localTutor.NodeTutorial.func_pTutor();

当我运行node app.js时,
我希望我的输出为

22
11

但它会引发一些错误。
它说
TypeError:localTutor.NodeTutorial.func_pTutor不是函数


由于我们扩展了Tutorial.js模块并公开了一个名为func_pTutor的函数。预计会调用教程模块。

如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:3)

使用

localTutor.NodeTutorial();

尝试创建一个NodeTutorial对象,但首先你不会错过new关键字,其次你不会&#39 ; t保存对象,使其被丢弃。

然后是下一行

localTutor.NodeTutorial.func_pTutor();

您尝试将对象构造函数用作对象。

相反,例如。

var tut = new localTutor.NodeTutorial();  // Create and save object
tut.func_pTutor();  // Call function on object

你还需要" export"该功能,通过使其成为this的一部分来完成。

例如通过做例如。

this.func_pTutor = function() { ... }