【问题标题】:Function returning undefined when exported导出时返回未定义的函数
【发布时间】:2021-01-31 01:55:00
【问题描述】:

我在 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
}

主模块.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

请帮忙。

【问题讨论】:

  • 您在(显示的)代码中没有实际导出函数的任何内容?
  • @Bergi Yupp 我忘了添加那行。我已经编辑过了。

标签: javascript events eventemitter module-export


【解决方案1】:

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

然后就可以了。

【讨论】:

  • 是的,它已被导出。当我导入它时,takeInput 工作正常,但 getEventEmitter 抛出 TypeError。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 2020-07-24
相关资源
最近更新 更多