运行Node.js数据库脚本时出现MODULE_NOT_FOUND错误求助
问题解决指南
一、先处理「MODULE_NOT_FOUND」错误
这个错误的核心是Node.js找不到你要执行的文件,按以下步骤排查:
- 核对执行命令的文件名:你执行的是
node filename.js,但错误提示找不到/home/setra/Desktop/code/javascript/tests/test.js,说明实际文件名是test.js,把命令改成node test.js即可。 - 确认终端所在路径:用
pwd命令查看当前工作目录,确保你在/home/setra/Desktop/code/javascript/tests/目录下执行命令;如果不在,要么切换目录(cd /home/setra/Desktop/code/javascript/tests/),要么用完整路径执行:node /home/setra/Desktop/code/javascript/tests/test.js。
二、修复mysql模块导入及代码问题
你的代码存在两处明显问题:
导入语句错误:
不能直接从./node_modules导入mysql,正确的导入方式分两种:- 用Node.js默认的CommonJS规范:
const mysql = require('mysql'); - 用ES模块规范(需在项目根目录的
package.json中添加"type": "module"):import mysql from 'mysql2';
注意:官方更推荐使用
mysql2模块,稳定性和功能更优,安装命令为npm install mysql2(若坚持用原生mysql则执行npm install mysql)。- 用Node.js默认的CommonJS规范:
未处理连接错误:
原代码的connect回调没有错误处理逻辑,连接失败时无明确提示,修改后:con.connect(function(err) { if (err) throw err; // 连接失败时抛出错误信息 console.log("Connected!"); });
最终修正后的示例代码
// CommonJS版本(无需修改package.json) const mysql = require('mysql2'); var con = mysql.createConnection({ host: "secret", user: "secret", password: "secret" }); con.connect(function(err) { if (err) throw err; console.log("Connected!"); });
内容的提问来源于stack exchange,提问作者Setra
相关产品推荐
相关产品推荐

