Node.js 连接 MySQL 配置与基础操作指南
详细介绍在 Express 项目中使用 Node.js 原生 mysql 模块连接 MySQL 数据库的完整流程,包括环境配置、数据库初始化、连接测试以及数据插入的代码实现。
准备 MySQL 环境
首先需要确保系统中已安装并正确配置了 MySQL。如果是解压版 MySQL,需要编辑配置文件 my.ini 以设定基本路径和端口。
[mysqld]
basedir=D:/MySql
datadir=D:/MySql/data
port = 3306
socket = "/tmp/mysql.sock"
[client]
password =
port = 3306
socket = "/tmp/mysql.sock"
default-character-set = utf8
注意:请将 basedir 和 datadir 修改为你实际安装的目录路径。
第1步:安装并启动 MySQL 服务
进入 MySQL 安装目录下的 bin 文件夹,打开命令行工具执行以下命令:
- 安装服务:
mysqld -install - 启动服务:
net start mysql
第2步:首次登录与字符集修正
在命令行输入以下命令进入数据库(初次安装默认无密码):
mysql -uroot -p
直接回车即可。如果后续发现中文字符显示乱码,可以在可视化工具(如 Navicat)中右键点击对应数据库,进入属性设置,将字符集强制修改为 utf8。
在 Express 项目中集成 MySQL
第3步:安装 mysql 驱动
在 myapp 项目根目录下运行 npm 指令安装依赖:
npm install mysql
第4步:编写连接测试代码
修改 routes/index.js,引入模块并添加基本的查询逻辑。这将用于验证 Node.js 是否成功连接到 MySQL。
var express = require('express');
var router = express.Router();
var mysql = require('mysql'); // 调用MySQL模块
router.get('/', function(req, res) {
res.render('index', { title: '孟星魂' });
// 创建连接实例
var connection = mysql.createConnection({
host: '127.0.0.1', // 主机地址
user: 'root', // 用户名
password: '111', // 密码,若没有请保持为空字符串
port: '3306', // 端口号
database: 'nodesample'
});
// 尝试连接
connection.connect(function(err) {
if (err) {
console.log('[query] - :' + err);
return;
}
console.log('[connection connect] succeed!');
});
// 执行简单的 SQL 测试查询
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
if (err) {
console.log('[query] - :' + err);
return;
}
console.log('The solution is: ', rows[0].solution);
});
// 结束连接
connection.end(function(err) {
if (err) {
return;
}
console.log('[connection end] succeed!');
});
});
module.exports = router;
重启 Express 服务后,观察控制台输出。若打印出 succeed! 及正确的查询结果,说明连接库已就绪。
数据库表结构与数据操作
第5步:初始化数据库与用户表
在 Navicat 或其他 SQL 客户端中执行脚本,创建库和数据表。建议显式指定字符集以防乱码。
CREATE DATABASE IF NOT EXISTS nodesample CHARACTER SET UTF8;
USE nodesample;
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (
`Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`UserName` varchar(64) NOT NULL COMMENT '用户名',
`UserPass` varchar(64) NOT NULL COMMENT '用户密码',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';
第6步:执行数据插入操作
修改 routes/index.js,增加一个 INSERT 语句来向刚才创建的表中写入数据。这里使用了占位符 ?_placeholder_ 来处理参数以防止 SQL 注入风险。
// ...前面的配置不变...
// 定义 INSERT 语句,参数位置使用 ? 占位
var userAddSql = 'INSERT INTO userinfo(Id,UserName,UserPass) VALUES(0,?,?)';
var userAddSql_Params = ['Wilson', 'abcd']; // 对应的值
connection.query(userAddSql, userAddSql_Params, function(err, result) {
if (err) {
console.log('[INSERT ERROR] - ', err.message);
return;
}
console.log('--------------------------INSERT----------------------------');
console.log('INSERT ID:', result);
console.log('-----------------------------------------------------------------\n\n');
});
// ...后面的end代码不变...
再次刷新页面,控制台应显示插入成功的日志。此时检查数据库内容,可以看到新增加的记录。
常见问题排查
- 中文乱码:确保数据库、数据表以及连接的
charset均设置为utf8。 - 拒绝访问:检查
createConnection中的用户名、密码和 IP 地址配置是否正确。 - 模块未找到:确认项目目录下已经通过 npm 安装了
mysql依赖包。
以上就是 Node.js 结合 Express 连接 MySQL 数据库并进行基础操作的详细内容,更多关于 Node.js 数据库编程的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













