Javascript node.js包含类文件
我有两个文件: start.jsJavascript node.js包含类文件,javascript,node.js,include,Javascript,Node.js,Include,我有两个文件: start.js var ConversationModule = require('./src/classes/conversation/Conversation.js'); ConversationModule.sayhello(); var ConversationModule = require('./src/classes/conversation/Conversation.js'); ConversationModule.sayhello()
var ConversationModule = require('./src/classes/conversation/Conversation.js');
ConversationModule.sayhello();
var ConversationModule = require('./src/classes/conversation/Conversation.js');
ConversationModule.sayhello();
conversation.js
var ConversationModule = new Object();
ConversationModule.sayhello = function () {
console.log("hello");
};
exports.ConversationModule = ConversationModule();
var ConversationModule = new Object();
ConversationModule.sayhello = function () {
console.log("hello");
};
module.exports = ConversationModule;
在start.js中,我无法调用sayhello()方法。我得到以下错误
TypeError: object is not a function
我只是不明白为什么它不起作用-我是node:)的新手。您正在尝试将
会话模块
导出为函数,但它不是。改用这个:
exports.ConversationModule = ConversationModule;
由于您还将变量指定为导出的属性,因此您必须这样调用它:
var ConversationModule = require('./file').ConversationModule;
ConversationModule.sayhello();
var ConversationModule = require('./file');
ConversationModule.sayhello();
如果不想这样做,请将对象指定给模块。导出:
module.exports = ConversationModule;
这样称呼它:
var ConversationModule = require('./file').ConversationModule;
ConversationModule.sayhello();
var ConversationModule = require('./file');
ConversationModule.sayhello();
鉴于您已将文件命名为conversation.js,您可能打算在该特定文件中单独定义“conversation模块”。(每个逻辑模块一个文件是一种良好做法)
在这种情况下,更改导出代码并保持require代码原来的状态会更干净
start.js
var ConversationModule = require('./src/classes/conversation/Conversation.js');
ConversationModule.sayhello();
var ConversationModule = require('./src/classes/conversation/Conversation.js');
ConversationModule.sayhello();
conversation.js
var ConversationModule = new Object();
ConversationModule.sayhello = function () {
console.log("hello");
};
exports.ConversationModule = ConversationModule();
var ConversationModule = new Object();
ConversationModule.sayhello = function () {
console.log("hello");
};
module.exports = ConversationModule;
将某些内容分配给模块。导出
使此值在您需要带有require
conversation.js的模块时可用:
var conversationModule = new Object();
conversationModule.sayhello = function () {
console.log("hello");
};
exports.conversationModule = conversationModule;
start.js:
var conversationModule = require('./src/classes/conversation/Conversation.js').conversationModule;
conversationModule.sayhello();