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

如何在Node.js+Express API服务器中导入并使用Firestore的addPost函数?

解决Node.js/Express中导入ES模块Firebase工具函数的问题

方法一:将Express服务切换为ES模块

  1. 在项目根目录的package.json中添加配置:
    "type": "module"
    
    这会让Node.js把所有.js文件默认当作ES模块处理,之后你就能在server/index.js里直接用ES导入语法:
    import { addPost } from '../index.js'
    
    注意:改完后项目里所有用require的地方都要换成import,确保其他依赖也适配ES模块规范。

方法二:单独标记Express服务文件为ES模块

不想全局修改的话,把server/index.js的后缀改成.mjs,然后在这个文件里用import导入函数:

import { addPost } from '../index.js'

这种方式只影响这个单个文件,其他.js文件仍保持CommonJS规范。

方法三:让Firebase工具文件兼容两种模块系统

修改src/services/firebase/index.js,同时支持ES模块和CommonJS导出:

// 保留原有的ES模块导入(适配React)
import { getFirestore, collection, addDoc } from "firebase/firestore";
// ... 你的addPost函数实现代码

// 添加CommonJS导出逻辑
if (typeof module !== 'undefined' && module.exports) {
  module.exports = { addPost };
}
// 保留ES模块导出
export { addPost };

改完后,React里用import、Express里用const { addPost } = require('../index.js')都能正常调用函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:41:32