我有2个文件:

start.js

    var ConversationModule = require('./src/classes/conversation/Conversation.js');
    ConversationModule.sayhello();

talk.js
    var ConversationModule = new Object();

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

    exports.ConversationModule = ConversationModule();

在start.js中,我无法调用sayhello()方法。我收到以下错误
TypeError: object is not a function

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

最佳答案

您正在尝试将ConversationModule导出为函数,但事实并非如此。改用这个:

exports.ConversationModule = ConversationModule;

由于还同时将变量分配为exports的属性,因此必须像这样调用它:
var ConversationModule = require('./file').ConversationModule;
ConversationModule.sayhello();

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

并这样称呼它:
var ConversationModule = require('./file');
ConversationModule.sayhello();

10-06 12:56