React+Node/MongoDB项目报错:TypeError: (0 , util_1.promisify) is not a function
解决
(0 , util_1.promisify) is not a function错误 针对你遇到的MongoDB相关错误,下面是几个直接的修复方向:
1. 检查并升级Node.js版本
util.promisify是Node.js 8.0.0版本之后才内置的API,如果你的后端Node.js版本低于这个,就会触发该错误:
- 在终端执行
node -v查看当前Node版本 - 若版本低于v8.0.0,直接安装Node.js的LTS版本(推荐v16或v18,兼容性更稳定)
2. 匹配MongoDB驱动与Node.js版本
如果Node版本符合要求,可能是MongoDB驱动包版本过高,和当前Node版本不兼容:
- 比如MongoDB v4.x及以上要求Node.js v12.9.0+,若你的Node是v10及以下,需要降级驱动包:
npm uninstall mongodb npm install mongodb@3.7.3 - 可根据MongoDB官方的版本兼容表调整对应版本
3. 确保后端代码未被打包到前端
从错误栈里的bundle.js能看出,MongoDB的代码被Webpack打包到了前端静态文件中——这是错误的,数据库操作必须放在Node后端运行,前端仅通过API与后端交互:
- 检查React项目代码,移除所有直接引入
mongodb模块的代码 - 将数据库连接、数据操作逻辑全部移到Node后端服务中,前端通过fetch/axios调用后端接口获取数据
内容的提问来源于stack exchange,提问作者Ross
相关产品推荐
相关产品推荐

