You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js如何导出多个函数?解决仅最后一个导出生效问题

解决Node.js模块导出多个方法的问题

错误原因分析

你遇到的问题来自三个核心错误:

  1. 拼写错误:Node.js中模块导出的正确属性是module.exports(复数形式),你写成了module.export(单数),导致导出逻辑失效。
  2. 覆盖式赋值:直接多次给module.exports赋值函数时,后一次赋值会完全覆盖前一次,最终只有最后一个方法被导出。
  3. 对象语法错误:尝试导出对象时,键值对应使用:分隔,你错误地用了=,导致对象语法不合法。

正确的导出写法

方法1:导出包含多方法的对象(推荐)

修正拼写和对象语法,将所有方法封装在一个对象中导出:

// common.js
module.exports = {
  getMethodOne: async () => {
    // 方法逻辑
  },
  getMethodTwo: async () => {
    // 方法逻辑
  }
};

方法2:逐个添加导出属性

通过给module.exports逐个添加属性的方式导出,避免覆盖问题:

// common.js
module.exports.getMethodOne = async () => {
  // 方法逻辑
};

module.exports.getMethodTwo = async () => {
  // 方法逻辑
};

也可以用更简洁的exports快捷方式(注意:不能直接给exports赋值对象,只能添加属性):

// common.js
exports.getMethodOne = async () => {
  // 方法逻辑
};

exports.getMethodTwo = async () => {
  // 方法逻辑
};

正确的引入写法

不要重复require同一个模块(Node.js会缓存模块,两次require拿到的是同一个对象),正确引入方式如下:

方式1:解构赋值(简洁直观)

// main.js
const { getMethodOne, getMethodTwo } = require("./common.js");

方式2:先引入模块对象再取属性

// main.js
const commonMethods = require("./common.js");
const getMethodOne = commonMethods.getMethodOne;
const getMethodTwo = commonMethods.getMethodTwo;

内容的提问来源于stack exchange,提问作者Sadeepa Medhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:05:47