导出时返回未定义的函数
Posted
技术标签:
【中文标题】导出时返回未定义的函数【英文标题】: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 我忘了添加那行。我已经编辑过了。 【参考方案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。以上是关于导出时返回未定义的函数的主要内容,如果未能解决你的问题,请参考以下文章
为啥 datadog lambda 检测返回“datadog-lambda-js/handler.handler 未定义或未导出”?