0

我在 node.js 中创建了一个具有 2 个功能的模块 - 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
}

导出主 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

请帮忙。

4

1 回答 1

0

您需要从 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 }

然后它将起作用。

于 2020-10-16T14:32:59.903 回答