Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导出时返回未定义的函数_Javascript_Events_Eventemitter_Module Export - Fatal编程技术网

Javascript 导出时返回未定义的函数

Javascript 导出时返回未定义的函数,javascript,events,eventemitter,module-export,Javascript,Events,Eventemitter,Module Export,我在node.js中创建了一个模块,它有两个函数-takeInput和getEventEmitter。它们都是出口的。但当我需要其他文件时,takeInput可以正常工作,但getEventEmitter没有定义 代码如下:- // main module.js function takeInput(db) { // logic to take input from user } function getEventEmitter(db) { const eventEmitter

我在node.js中创建了一个模块,它有两个函数-takeInput和getEventEmitter。它们都是出口的。但当我需要其他文件时,takeInput可以正常工作,但getEventEmitter没有定义

代码如下:-

// main module.js
function takeInput(db) {
    // logic to take input from user
}

function getEventEmitter(db) {
    const eventEmitter = new EventEmitter();

    console.log(takeInput);
    eventEmitter.on('function execution complete', () => takeInput(db));

    eventEmitter.emit('function execution complete');
}

module.exports = {
    takeInput,
    getEventEmitter
}
导出main module.js的模块

const { getEventEmitter } = require('main module');

// Some lines of code ...
getEventEmitter(db); // Error here when this function is called.
错误如下

TypeError: getEventEmitter is not a function

请提供帮助。

您需要从main module.js导出这两个函数

function takeInput(db) {
    // logic to take input from user
}

function getEventEmitter(db) {
    const eventEmitter = new EventEmitter();
    console.log(takeInput);
    eventEmitter.on('function execution complete', () => takeInput(db));
    eventEmitter.emit('function execution complete');
}

export  { takeInput, getEventEmitter }

然后它就会工作。

您在(显示的)代码中没有实际导出函数的内容?@Bergi Yupp my bad忘了添加那一行。我已经编辑过了。是的,它已经被导出了。导入时takeInput工作正常,但getEventEmitter抛出TypeError。