node.js包括类文件

dan*_*558 10 javascript include node.js

我有2个文件:

start.js

    var ConversationModule = require('./src/classes/conversation/Conversation.js');
    ConversationModule.sayhello();
Run Code Online (Sandbox Code Playgroud)

conversation.js

    var ConversationModule = new Object();

    ConversationModule.sayhello = function () {
    console.log("hello");
    };

    exports.ConversationModule = ConversationModule();
Run Code Online (Sandbox Code Playgroud)

在start.js中我无法调用sayhello()方法.我得到以下错误

TypeError: object is not a function
Run Code Online (Sandbox Code Playgroud)

我只是不明白为什么它不起作用 - 我是节点的新手:)

hex*_*ide 11

您试图将其导出ConversationModule为函数,而不是.请改用:

exports.ConversationModule = ConversationModule;
Run Code Online (Sandbox Code Playgroud)

由于您还将变量指定为属性exports,因此您必须将其称为:

var ConversationModule = require('./file').ConversationModule;
ConversationModule.sayhello();
Run Code Online (Sandbox Code Playgroud)

如果您不想这样做,请将对象分配给module.exports:

module.exports = ConversationModule;
Run Code Online (Sandbox Code Playgroud)

并称之为:

var ConversationModule = require('./file');
ConversationModule.sayhello();
Run Code Online (Sandbox Code Playgroud)