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

Node.js跨文件函数导入失败:导出与导入方式不匹配问题排查

问题排查与解决

核心问题有两个:

  • 导出语法错误:你用了逗号表达式module.exports = run, inserirDatabase, readDatabase, deleteOneOnDatabase,这种写法只会把最后一个deleteOneOnDatabase赋值给module.exports,其他函数根本没被导出。
  • 模块系统不兼容:你用CommonJS的module.exports导出,却用ES模块的import语法导入,Node.js默认不会自动兼容这两种写法。

解决方案选其一即可:

方案1:统一用CommonJS模块(require导入)

修改导出文件的最后一行,把所有函数放进一个对象:

module.exports = {
  run,
  inserirDatabase,
  readDatabase,
  deleteOneOnDatabase
};

然后导入时改用require:

const { run, inserirDatabase, readDatabase, deleteOneOnDatabase } = require('../database/database.js');

方案2:统一用ES模块(import/export)

  1. 在项目根目录的package.json中添加"type": "module",告诉Node.js这是ES模块项目:
{
  "type": "module"
}
  1. 修改导出文件的最后一行,用ES模块的命名导出:
export { run, inserirDatabase, readDatabase, deleteOneOnDatabase };

你的导入代码可以保持不变:

import { run, inserirDatabase, readDatabase, deleteOneOnDatabase } from '../database/database.js';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:45:59