JavaScript调用mysql.createConnection报not a function错误求助
排查解决步骤
- 优先检查脚本文件命名:你报错日志中执行的文件路径为
/home/pi/node_modules/mysql.js,说明你要么是把自己编写的业务代码命名为了mysql.js,要么是将代码放在了node_modules目录下。Node.js的模块加载机制会优先加载当前目录下的同名文件,导致你require('mysql')实际引入的是你自己写的空脚本,自然不存在createConnection方法。解决方法:将你的脚本文件名修改为其他名称(比如mysql-demo.js),同时不要把业务代码存放在node_modules目录下。 - 确认依赖包安装正确:运行
npm list mysql检查项目中是否安装了官方mysql包,若返回空或未安装提示,执行以下命令重装稳定版本:
npm uninstall mysql npm install mysql@2.18.1 --save
- 检查模块引入规则匹配:如果你的项目package.json中配置了
"type": "module",需要将CommonJS的require写法替换为ES Module写法:import mysql from 'mysql',不要混用两种模块规范的引入语法。 - 清理缓存重试:如果以上操作都完成后仍报错,执行
npm cache clean --force清空npm缓存,删除项目根目录下的node_modules文件夹和package-lock.json文件,重新执行npm install安装所有依赖。
内容的提问来源于stack exchange,提问作者Kodos23
相关产品推荐
相关产品推荐

